为什么一个额外的逗号形状为单个索引numpy数组

时间:2017-09-09 20:35:52

标签: arrays numpy

numpy数组a    a = numpy.arange(12)

有形状 a.shape =(12,)

为什么我们需要逗号?形状(12)是为其他东西保留的吗?

2 个答案:

答案 0 :(得分:15)

我们不使用(12)作为单元素元组的原因(对于单元素列表,如[12])是圆括号也出现在公式中。例如,在x = 2*(5+7)中,(5+7)部分只是一个数字,而不是一个元组。但是,如果我们实际上意味着它是一个单元素元组怎么办?尾随逗号是表示这一点的一种方式。比较:

>>> 2*(5+7)
24
>>> 2*(5+7,)
(12, 12)

使用列表时,不需要尾随逗号,尽管某些样式指南建议使用它以保持一致性。

>>> 2*[5+7]
[12, 12]
>>> 2*[5+7,]
[12, 12]

答案 1 :(得分:2)

numpy数组的shape属性总是返回一个元组。

  

数组中的维和项的数量由其shape定义,(12,)是指定每个维度大小的N个正整数的元组。

12只是一个单元素元组,因此这表明你有一个一维数组(因为元组长度为1),大小为 class MyCreateAccount extends ReduxBehavior(Polymer.Element) {..}

记录here