第4节,numpy数组的基本属性

numpy属性

尽管在上一节,你已经学会了如何创建numpy数组,但对ndarray的基本属性,你并不了解,这些属性包括:

  1. ndim 轴的数量
  2. shape 维度
  3. size 元素的数量
  4. dtype 元素类型
  5. itemsize 单个元素的大小

先来看一段代码,结合代码的输出结果来理解上面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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案