1.NumPy快速处理数据
1.基本使用
导入numpy函数包常用
import numpy as np
使用该函数包首先要创建一个数组才能进行相应操作,这里我们选择创建一个多维数组
c = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
可以得到如下多维数组
array([[ 1, 2, 3, 4],
[ 4, 5, 6, 7],
[ 7, 8, 9, 10]])
2.数组的形状(Shape)
>>> c.shape
(3, 4)
数组 c
的 shape 属性有两个元素,因此它是二维数组,其中第0轴的长度为3
,第1轴的长度为4。因此我们可以说shape返回得到的(a,b)的意思是该数组为一个a维数组,而每行的元素有b个。
2.1 shape的赋值
shape可以被赋值,例如我们将c数组赋值
c.shape = 4,3
可以得到
>>> c
array([[ 1, 2, 3],
[ 4, 4, 5],
[ 6, 7, 7],
[ 8, 9, 10]])
这样的操作下内存中的每一个元素没有发生改变,只是修改了数组的shape属性。
注意:将(a,b)中的某一值赋值为-1时,将自动计算该轴的长度。
例如
>>> c.shape = 2,-1
>>> c
array([[ 1, 2, 3, 4, 4, 5],
[ 6, 7, 7, 8, 9, 10]])
我们得到的c.shape实际上是 2,6
2.2 reshape函数
使用数组的 reshape方法,可以创建一个改变了尺寸的新数组,原数组的shape保持不变。
但要注意的是 新建立的数组与原数组共用同样的内存地址,因此任意一个数组内的元素变化都会造成另一数组元素发生同样变化
3.数组的类型 dtype
数组的元素类型可以通过 dtype
属性获得。 上面例子中的参数序列的元素都是整数,因此所创建的数组的元素类型也是整数,并且是32bit的长整型。 可以通过 dtype
参数在创建时指定元素类型
4.创建数组的函数
-
arange()
函数类似于 Python的range()
-
函数,通过指定开始值、终值和步长来创建一维数组,注意数组不包括终值:
-
>>> np.arange(0,1,0.1) array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
linspace函数通过指定开始值、终值和元素个数来创建一维数组,可以通过endpoint关键字指定 是否包括终值,缺省设置是包括终值:
>>> np.linspace(0, 1, 12) array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636, 0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182, 0.90909091, 1. ])
logspace函数和linspace类似,不过它创建等比数列,下面的例子产生1(100)到100(102)、 有20个元素的等比数列:
>>> np.logspace(0, 2, 20) array([ 1. , 1.27427499, 1.62377674, 2.06913808, 2.6366509 , 3.35981829, 4.2813324 , 5.45559478, 6.95192796, 8.8586679 , 11.28837892, 14.38449888, 18.32980711, 23.35721469, 29.76351442, 37.92690191, 48.32930239, 61.58482111, 78.47599704, 100. ])
此外,使用frombuffer, fromstring, fromfile等函数可以从字节序列创建数组。
2.ufnc运算
3.矩阵运算
numpy库中提供matrix类进行创建矩阵,可以进行矩阵的加减乘除运算
4.文件存取
NumPy提供了多种文件操作函数方便我们存取数组内容。文件存取的格式分为两类:二进制和文本。 而二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。