import numpy as np
a = np.array([1,2,3,4])
print a.shape[0]
为什么会输出
4
?
数组
[1,2,3,4]
,我想它的行应该是1
,所以谁能帮我解释一下原因?
因为
print(a.shape) # -> (4,)
你想(或想要?)拥有的是
a = np.array([[1],[2],[3],[4]])
print(a.shape) # -> (4, 1)
或者更确切地说(?)
a = np.array([[1, 2 , 3 , 4]])
print(a.shape) # -> (1, 4)
如果你打印
a.ndim
,你会得到 1。这意味着 a
是一个一维数组(在 numpy 术语中排名为 1),轴长度 = 4。它与具有单个矩阵的 2D 矩阵不同行或列(等级 2)。
相关问题:
numpy 数组的 shape 属性返回数组的维度。如果 a 有 n 行和 m 列,则 a.shape 为 (n,m)。所以 a.shape[0] 是 n,a.shape[1] 是 m。
numpy 数组返回数组的维度。因此,当您使用以下方法创建数组时,
a = np.array([1,2,3,4])
您将得到一个 4 维数组。您可以通过打印形状来检查,
print(a.shape) #(4,)
所以,你得到的不是 1x4 矩阵。如果你想这样做,
a = numpy.array([1,2,3,4]).reshape((1,4))
print(a.shape)
或者更好,
a = numpy.array([[1,2,3,4]])
a = np.array([1, 2, 3, 4])
通过这样做,你会得到一个
a
作为 ndarray,它是一个一维数组。这里,形状 (4,) 表示数组由从 0 到 3 的单个索引进行索引。您可以通过索引 0~3 访问元素。它与多维数组不同。
您可以从此链接参考更多帮助numpy.array shape (R, 1) 和 (R,) 之间的区别。
将 numpy 导入为 np
X = np.array([[1,2,3], [4,5,6], [7,8,9]])
y = np.array([[9,7,8], [3,2,1], [6,5,4]])
Z = x[:2,1:] + y[1:3,:2]
打印(z)