尽管在上一节,你已经学会了如何创建numpy数组,但对ndarray的基本属性,你并不了解,这些属性包括:
先来看一段代码,结合代码的输出结果来理解上面5个基本属性
import numpy as np
array = np.zeros((3, 4))
print(array.ndim) # 2 轴的数量
print(array.shape) # (3, 4) 维度
print(array.size) # 12 元素个数
print(array.dtype) # float64 元素类型
print(array.itemsize) # 8 单个元素的大小
对这5个属性,我从后向前解释,把最难理解的ndim和shape放在最后。
itemsize 是描述数组内单个元素的大小,单位是字节,一个float64类型的数据,占8个字节大小,通过这个数值集合size,你大致可以计算出数组所占内存大小。
dtype是数组内元素的类型,ndarray数组里所有的元素都有相同的数据类型。
size 是数组内元素的个数,3行4列,一共12个元素。
shape 和 ndim其实也并不难理解,麻烦的是他们哪个是数组的维度,维度该怎么理解。数据3行4列,通常我们习惯说它是二维数组,ndim等于2,官方文档给的解释是
the number of axes (dimensions) of the array
翻译过来是: 数组轴(维度)的数量,这和我们认为的二维相对应。对于shape,我们更倾向于将其理解为几行几列,当然,如果是三维数组,我们这种几行几列的理解方式就不适用了。
所以,对这两个属性的理解,难点不在于不懂其数值所代表的含义,而是将哪个视为维度的代表。
我尊重官方文档的解释,shape是维度,ndim是维度的个数,这是对维度的正确理解,我们平时习惯的理解是一种概念上模糊且不准确的理解。
QQ交流群: 211426309