numpy`np.array()[无]`行为

时间:2017-05-30 03:46:28

标签: numpy

import numpy as np  # specify import if you are using it with some other name

np.array([1, 2, 3]) -> array([1, 2, 3])

np.array([1, 2, 3])[None] -> array([[1, 2, 3]])

请注意,第二行有一个额外的维度。有人可以向我解释这种行为吗?这不是乘法。 np.array([1, 2, 3])*[None]会引发错误。

2 个答案:

答案 0 :(得分:2)

这与np.array([1, 2, 3])[np.newaxis]完全相同。 None恰好是为newaxis选择的值;它可能是任何不具有意义的切片或索引值的东西。

答案 1 :(得分:0)

>>> numpy.array([1,2,3])[0]  # find values at specific index in array
1
>>> numpy.array([1,2,3])[1]
2
>>> numpy.array([1,2,3])[None] # when you pass None as index it gives you whole list
array([[1, 2, 3]])

当您使用numpy.array(<your-list>)*[value]时,您会感到困惑,这会将数组中的所有值与值相乘。这里列表中的所有值都是整数,只能乘以整数或浮点值。 None是python中的NoneType object(准确地说,这是我对python3的声明,对python2不太了解)并且你不能将整数值与None对象相乘。因为如果你处理2 * None它没有任何意义。