NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。
·常见的数据类型
bool_ 一个字节的布尔值
int_ 默认的整数
int8 字节-128-127 ; int16,int32, int64 对应的整数
float_ float64的简写, float16 float32 float64
complex_
·创建n维数组 numpy.array()函数的使用
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
序号 | 参数及描述 |
---|---|
1. | object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。 |
2. | dtype 数组的所需数据类型,可选。 |
3. | copy 可选,默认为true ,对象是否被复制。 |
4. | order C (按行)、F (按列)或A (任意,默认)。 |
5. | subok 默认情况下,返回的数组被强制为基类数组。 如果为true ,则返回子类。 |
6. | ndimin 指定返回数组的最小维数。 |
numpy.shape : 返回一个包含数组元素的元组,也可以调整数组的排列形式
import numpy as npprint a ##[[1,2],[3,4],[5,6]]
numpy.reshape() 功能与属性shape相似,但一个为方法,一个为属性
a.reshape(3,2)
numpy.ndim 返回数组的维数
np.arange(start,stop,step,dtype='') 返回等间隔数字的函数
a= np.arange(2,10,2,dtype='flaot') print a # [2.,4.,6.,8.]
np.linspace(start,stop,num,endpoint,restep,dtype)
1. | start序列的起始值 |
2. | stop序列的终止值,如果endpoint为true,该值包含于序列中 |
3. | num 要生成的等间隔样例数量,默认为50 |
4. | endpoint序列中是否包含stop值,默认为ture |
5. | retstep如果true,返回样例,以及连续数字之间的步长 |
6. | dtype输出ndarray的数据类型 |
切片(slice对象)通过将start,stop和step参数提供给内置的slice函数来构造一个 Python slice对象
a= np.arange(0,10,1,dtype='float')
s=slice(2,5,1) # 函数而非对象
print a[s] #[2 3 4]
上述代码等价于:
import numpy as np a = np.arange(10) b = a[2:7:2] print b
获取单个元素: a[5]
获取第2个及之后的元素:a[2:]
获取第2个至第5个元素:a[2:5]
获取数组的逆序:a[::-1]
·切片还可以包括省略号(...),来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含 行中元素的ndarray
import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print '我们的数组是:' print a print '\n' # 这会返回第二列元素的数组: print '第二列的元素是:' print a[...,1] print '\n' # 现在我们从第二行切片所有元素: print '第二行的元素是:' print a[1,...] print '\n' # 现在我们从第二列向后切片所有元素: print '第二列及其剩余元素是:' print a[...,1:]
有两种类型的高级索引:整数和布尔值。
整数索引:
import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = x[[0,1,2], [0,1,0]] print y ## [1 4 5]
使用 : 和 ...的高级索引
import numpy as np x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) print '我们的数组是:' print x print '\n' # 切片 z = x[1:4,1:3] print '切片之后,我们的数组变为:' print z print '\n' # 对列使用高级索引 y = x[1:4,[1,2]] print '对列使用高级索引来切片:' print y
结果:
我们的数组是: [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] 切片之后,我们的数组变为: [[ 4 5] [ 7 8] [10 11]] 对列使用高级索引来切片: [[ 4 5] [ 7 8] [10 11]]
print a[a>5]
import numpy as np x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) print '我们的数组是:' print x print '\n' # 现在我们会打印出大于 5 的元素 print '大于 5 的元素是:' print x[x > 5]
结果
我们的数组是:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
大于 5 的元素是:
[ 6 7 8 9 10 11]