《利用python进行数据分析》学习笔记(二)--NumPy(1)

本文是《利用python进行数据分析》的学习笔记,主要探讨了NumPy库,特别是其核心数据结构ndarray。介绍了ndarray的特性,如数组创建、属性(shape, dtype)的设置与修改,以及数组的运算、索引和切片操作,包括布尔型索引和花式索引。通过示例展示了如何使用NumPy高效地进行数值处理。" 128138645,7783893,MATLAB中滑标与多级菜单的应用,"['MATLAB', '图形用户界面', '开发语言']

由于刚开始接触python的数据分析,第二章引言和第三章IPython就先略读了下,对能做的事和开发环境有了个大致的认识,但针对其中提到的一些优势还有没体会,回头再重新看。今天直接学习python数据分析中重要的库之一:Numpy(numerical python)


看看它在pypi上的说明(理解不一定准确,希望有大神能够指点,还需要多刷文档):

NumPy: array processing for numbers, strings, records, and objects.

NumPy is a general-purpose array-processing package designed to efficientlymanipulate large multi-dimensional arrays of arbitrary records withoutsacrificing too much speed for small multi-dimensional arrays. NumPy is built on the Numeric code base and adds features introduced by numarray as well as an extended C-API and the ability to create arrays of arbitrary type which also makes NumPy suitable for interfacing with general-purpose data-base applications.

There are also basic facilities for discrete fourier transform, basic linear algebra and random number generation.

1. 这里来看是以数组的形式处理数、字符串、记录、对象。

2. 它能够高效的处理大数量级的多维的数组

3. 引入C-API,适配低级语言的外部库

4. 能够进行傅里叶变换、线性代数、随机数生成


学习中Numpy使用之前均需要引入库:import numpy as np,一般不要用引入库里面所有的东西的方式 from numpy import *,太费。

先来看看ndarray(多维数组对象):

1. 这个东西是什么?我理解这个东西就是一个盒子,这个盒子可以装数、字符串等东西,但是每个盒子只能装一种特定类型(也就是同构)的东西。这个盒子有两个重要的属性一个是大小形状(shape)一个是类型(dtype)。

2. 怎么在python中创建这个东西?答案是array()函数了:

    array 函数:接收序列--->变成数组

>>> import numpy as np
>>> data1=[1,2,3,4,5]
>>> array1=np.array(data1)
>>> array1
array([1, 2, 3, 4, 5])
>>> data2=[[1,2,3,4,5],[6,7,8,9,10]]
>>> array2=np.array(data2)
>>> array2
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10]])

    两个属性:shape 和 dtype,聪明的array在你没有定义的时候会根据所传入的序列类型自动分配,当然也可以在创建的时候显示的定义dtype。例如arr=np.array([1,2,3],dtype=np.float64

    怎么改变这两个属性呢?对shape来说:一是给shape属性赋值,通过赋值方式改变shape只是改变了轴的大小,不改变内存地址。二是通过reshape函数创建一个新尺寸的数组,引用同一段内存地址。也就是说改变大小调整后数组的值会影响原值。同样的可以使用属性直接赋值和astype()函数改变类型:

>>> array1.shape
(5,)
>>> array2.shape
(2, 5)
>>> array2.dtype
dtype('int32')

>>> array2.shape=(5,2)
>>> array2
array([[ 1,  2],
       [ 3,  4],
       [ 5,  6],
       [ 7,  8],
       [ 9, 10]])
>>> arr2_re=array2.reshape(2,5)
&

Python的设计哲学是“优雅”、“明确”、“简单。Python用途极广。图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。 数学处理:NumPy扩展提供大量与许多标准数学库的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。 Web编程:应用的开发语言,支持最新的XML技术。 多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行维和三维图像处理。PyGame模块可用于编写游戏软件。 pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。 黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。 用Python写简单爬虫
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值