numpy
数组
好消息!
本教程作者所著新书《深入浅出Pandas:利用Python进行数据处理与分析》(ISBN:9787111685456)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。
说明
NumPy 教程 正在计划编写中,欢迎大家加微信 gairuo123 提供意见、建议、纠错、催更。
NumPy 的主要对象是同构的多维数组,它像很多元素(通常由数字)组成的表格,它们的数据类型相同,在不同方向上可以用非负的数字来索引它们,这些方向我们称为轴(axes)。
Array 的基础信息有以下几个:
信息 | 方法 | 说明 |
---|---|---|
维数 | ndarray.ndim | 数组的轴(维度)数 |
形状 | ndarray.shape | 数组尺寸、规格 一个整数元组,表示每个维度中数组的大小 |
大小 | ndarray.size | 数组元素的总数 |
类型 | ndarray.dtype | 描述数组中元素的类型 |
示例如下:
arr = np.array([(1,2), (3,4)])
arr
'''
array([[1, 2],
[3, 4]])
'''
arr.ndim # 2 维数
arr.shape # (2, 2) 形状
arr.size # 4 大小
arr.dtype # dtype('int64') 类型
NumPy 的数组类称为 ndarray,简称为 array。 请注意,numpy.array 与标准 Python 库类 array.array 不同,后者仅处理一维数组且功能较少。
ndarray 对象包含以下信息:
数组的轴(维度)数。以下就是一个三维数据:
a = np.arange(1, 9).reshape(2, 2, 2)
a
'''
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
'''
a.ndim
# 3
数组尺寸、规格,这是一个整数元组,指示每个维度中数组的大小。 对于具有 n 行和 m 列的矩阵,形状将为(n,m), 因此,形状元组的长度为轴数、维数。
上例的三维数据形成就是一个三个元素的元组,有三条轴:
a.shape
# (2, 2, 2)
数组元素的总数。 这等于形状元素的乘积。
a.size
# 8
a.shape
# (2, 2, 2)
2*2*2
# 8
描述数组中元素的类型, 可以使用标准 Python 类型创建或指定 dtype。 另外,NumPy 提供了自己的类型,如 numpy.int32,numpy.int16 和 numpy.float64 等。
a.dtype
# dtype('int64')
教程后续会有专门介绍 NumPy 的数据类型。
数组中每个元素以字节为单位的大小, 例如,float64 类型的元素数组的项目大小为8(= 64/8),而complex32 类型的元素数组的项目大小为 4(= 32/8)。
x = np.array([1,2,3], dtype=np.float64)
x.itemsize
# 8
x = np.array([1,2,3], dtype=np.complex128)
x.itemsize
# 16
它等效于 ndarray.dtype.itemsize。
包含数组实际元素的缓冲区,指向数组数据开头的 Python 缓冲区对象。通常,我们不需要使用此属性,因为我们将使用索引工具访问数组中的元素。
a.data
# <memory at 0x7fadecd7b7c0>
了解以上数据的基础信息,将有助于我们后续更加深入的学习。