Numpy n 维数组 ndarray
numpy 中的核心数据结构是 ndarray
( n 维数组的简称 )。ndarray
s 是
- 同类的(即它们包含相同数据类型的项目)
- 包含固定大小的项目(由形状给定, n 个正整数的元组,指定每个维度的大小)
一维数组:
x = np.arange(15)
# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
x.shape
# (15,)
二维数组:
x = np.asarray([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
x
# array([[ 0, 1, 2, 3, 4],
# [ 5, 6, 7, 8, 9],
# [10, 11, 12, 13, 14]])
x.shape
# (3, 5)
三维:
np.arange(12).reshape([2,3,2])
要初始化数组而不指定其内容,请使用:
x = np.empty([2, 2])
# array([[ 0., 0.],
# [ 0., 0.]])
数据类型猜测和自动转换
默认情况下,data-type 设置为 float
x = np.empty([2, 2])
# array([[ 0., 0.],
# [ 0., 0.]])
x.dtype
# dtype('float64')
如果提供了一些数据,numpy 会猜测数据类型:
x = np.asarray([[1, 2], [3, 4]])
x.dtype
# dtype('int32')
请注意,在进行赋值时,numpy 会尝试自动转换值以适应 ndarray
的数据类型
x[1, 1] = 1.5 # assign a float value
x[1, 1]
# 1
# value has been casted to int
x[1, 1] = 'z' # value cannot be casted, resulting in a ValueError
阵列广播
另请参见广播阵列操作 。
x = np.asarray([[1, 2], [3, 4]])
# array([[1, 2],
[3, 4]])
y = np.asarray([[5, 6]])
# array([[5, 6]])
在矩阵术语中,我们将有一个 2x2 矩阵和一个 1x2 行向量。我们仍然可以做一笔钱
# x + y
array([[ 6, 8],
[ 8, 10]])
这是因为数组 y
被拉伸到:
array([[5, 6],
[5, 6]])
适合 x
的形状。
资源:
- 来自官方文档的 ndarray 简介: N 维数组(ndarray)
- 类参考: ndarray 。