我有关于NumPy数组的问题。
我无法获取像.T这样的数组方法或像numpy.concatenate这样的函数来处理我创建的数组:
>>> a=np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a.T
array([1, 2, 3])
>>> np.concatenate((a,a),axis=0)
array([1, 2, 3, 1, 2, 3])
>>> np.concatenate((a,a),axis=1)
array([1, 2, 3, 1, 2, 3])
>>>
然而,当我使用像rand这样的bult-in函数创建一个数组时,一切都很好
>>> a=np.random.rand(1,4)
>>> a.T
array([[ 0.75973189],
[ 0.23873578],
[ 0.6422108 ],
[ 0.47079987]])
>>> np.concatenate((a,a),axis=0)
array([[ 0.92191111, 0.50662157, 0.75663621, 0.65802565],
[ 0.92191111, 0.50662157, 0.75663621, 0.65802565]])
你认为它与元素类型(int32 vs float64)有关吗?
我在Windows 7上运行python 2.7
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
尝试:
a = np.random.rand(4)
然后我认为你会发现它的工作原理是一样的。
一般来说,numpy你需要注意数组的形状和轴。形状(4,)
,(4,1)
和(1,4)
都不同,在大多数情况下表现不同。
例如:
a = np.random.rand(4)
print a.shape, a.T.shape # (4,) (4,)
b = np.random.rand(1,4)
print b.shape, b.T.shape # (1,4) (4,1)