微信扫一扫
关注该公众号
numpy的主要对象是多维数组,数组中元素是同一种的(通常是数字)。numpy中的数组对象叫做ndarray,通常称为数组。
numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。
在numpy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。如3D空间中一个点的坐标[1,2,3]
是一个秩为1的数组,因为它只有一个轴,这个轴长度为3,在下面的例子中数组的秩为2(它有两个维度),第一个维度为2,第二个维度为3。
1 |
|
1. ndarray对象属性
-
ndarray.ndim
数组轴的个数,在python的世界中,轴的个数被称作秩
-
ndarray.shape
数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(n,m),这个元组的长度显然是秩,即维度或者ndim属性
-
ndarray.size
数组元素的总个数,等于shape属性中元组元素的乘积。
-
ndarray.dtype
一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。
-
ndarray.itemsize
数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).
-
ndarray.data
包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。
2. 创建ndarray
2.1. np.array()
从常规的Python列表和元组创造数组。所创建的数组类型由原序列中的元素类型推导而来,数组将序列包含序列转化成二维的数组,序列包含序列包含序列转化成三维数组等等
1 |
|
2.2. np.zeros()&&np.ones()&&np.empty()&&np.eye()
函数zeros
创建一个全是0的数组;函数ones
创建一个全1的数组;函数empty
创建一个内容随机并且依赖与内存状态的数组;eye
创建对角都为1,其他元素为0的矩阵(单位矩阵)。
默认创建的数组类型(dtype)都是float64。
1 |
|
2.3. np.arange()—指定步长产生数组
开始值和步长都可以不指定,开始值默认为0,步长默认为1,最终值取不到。
1 |
|
2.4. np.linspace()—指定个数产生数组
开始值和最终值都需要指定,产生个数可以不指定,默认产生50个,最终值取得到。
1 |
|
2.5. np.full()
指定元素来提供指定大小的矩阵
1 |
|
2.6. np.random
1 |
|
3. 常用方法
下面中arr是指ndarray对象
3.1. arr.astype(dtype)—把数组元素转为指定的dtype
1 |
|
3.2. arr.tolist()—把ndarray对象转化为python 列表
1 |
|
3.3. arr.T—转置
1 |
|
3.4. arr.reshape(3, 4)
转化矩阵shape为3*4,没有改变元素。通过返回值实现
1 |
|
3.5. arr.resize((3, 5))
转为矩阵shape3*5,多余的值用0填充。直接修改原ndarray对象,引用需要为创建出来的引用
1 |
|
1 |
|
3.6. arr.sum()&&arr.min()/arr.max()
1 |
|
3.7. np.mean(arr)
1 |
|
3.8. np.array_equal(arr1, arr2)
比较值是否相等,若每个元素的值相等,并且ndarray的shape一样那么就是True
1 |
|
4. 对ndarray的元素操作
arr[a, b,…]依次取第一维、第二维,如a就代表第一个维度的取值,b代表第二维度的取值
4.1. 取值
1 |
|
4.2. 赋值
在上面的取值操作后面加上赋值操作就好
1 |
|
4.3. 大小判断确定boolean
1 |
|
5. 常用的数学方法
1 |
|
本文参考: