Python 关于Numpy和xFF0C;a=np.array([1,2,3,4]),打印a.shape[0]。为什么它会输出4?

Python 关于Numpy和xFF0C;a=np.array([1,2,3,4]),打印a.shape[0]。为什么它会输出4?,python,numpy,Python,Numpy,为什么它会输出4 数组[1,2,3,4],我想它的行应该是1,那么谁能为我解释原因呢?numpy数组的shape属性返回数组的维度。如果a有n行和m列,那么a.shape是(n,m)。所以a.shape[0]是n,a.shape[1]是m。因为 import numpy as np a = np.array([1,2,3,4]) print a.shape[0] 你认为(或想要)拥有的是 print(a.shape) # -> (4,) 或者说(?) 如果您打印a.ndim,您将得到

为什么它会输出
4


数组
[1,2,3,4]
,我想它的行应该是
1
,那么谁能为我解释原因呢?

numpy数组的shape属性返回数组的维度。如果a有n行和m列,那么a.shape是(n,m)。所以a.shape[0]是n,a.shape[1]是m。因为

import numpy as np
a = np.array([1,2,3,4])
print a.shape[0]
你认为(或想要)拥有的是

print(a.shape)  # -> (4,)
或者说(?)


如果您打印
a.ndim
,您将得到1。这意味着
a
是一个一维数组(在numpy术语中排名1),轴长度为4。它不同于具有单个行或列(秩2)的二维矩阵

相关问题:


numpy数组返回数组的维度。因此,当您使用创建数组时

a = np.array([[1, 2 , 3 , 4]])
print(a.shape)  # -> (1, 4)
得到一个4维数组。您可以通过打印形状进行检查

a = np.array([1,2,3,4])
所以,得到的不是1x4矩阵。如果你想这样做

print(a.shape) #(4,)
甚至更好

a = numpy.array([1,2,3,4]).reshape((1,4))
print(a.shape)
通过这样做,您将得到一个
a
作为数据数组,它是一个一维数组。这里,形状(4,)表示数组由一个从0到3的索引索引。您可以通过索引0~3访问元素。它不同于多维数组


您可以从这个链接中参考更多帮助。

作者可能希望
a=np.array([[1,2,3,4]])
取而代之,因为他希望形状的第一个分量等于1@alexisrozhkov:噢,你说得对。我会包括在内,原因是什么?这是
numpy
,而不是
MATLAB
。在
numpy
中,数组可以是1d
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])