我是numpy&对此有疑问:
根据docs.scipy.org,“形状”方法是“数组的维度。对于具有n行和m列的矩阵,形状将是(n,m)”
假设我要创建一个简单的数组,如下所示:
np.array([[0,2,4],[1,3,5]])
使用“shape”方法,它返回(2,3)(即数组有2行和3列)
但是,对于数组([0,2,4]),shape方法将返回(3,)(这意味着它根据上面的定义有3行)
我很困惑:数组([0,2,4])应该有3列而不是3行,所以我希望它返回(,3)。
任何人都可以帮忙澄清一下吗?非常感谢。
答案 0 :(得分:3)
这只是符号 - 在Python中,元组通过使用逗号区别于表达式分组(或操作顺序) - 也就是说,(1,2,3)
是一个元组,而(2x + 4) ** 5
包含一个表达式2x + 4
。为了保持单元素元组与单元素表达式不同,否则单元素表达式将是不明确的((1)
vs (1)
- 这是单元素元组,并且是一个简单的表达式,其求值为{{ 1}}?),我们使用尾随逗号来表示元组。
您获得的是单维回复,因为只有一个要衡量的维度,打包成1
类型。
答案 1 :(得分:0)
Numpy不仅支持二维数组,还支持多维数组,而且多维我指的是1-D,2-D,3-D .... nD,并且有一种格式用于表示各自的维数组。 len
的{{1}}可以获得该数组的维数。如果数组为1-D,则无需表示为array.shape
,或者如果数组为3-D,则(m, n)
不足以表示其维度。
因此(m, n)
的输出并不总是array.shape
格式,它将取决于数组本身,并且您将获得不同维度的不同输出。