关于Numpy的形状

时间:2017-02-26 05:18:04

标签: python arrays numpy shape

我是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)。

任何人都可以帮忙澄清一下吗?非常感谢。

2 个答案:

答案 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格式,它将取决于数组本身,并且您将获得不同维度的不同输出。