我想创建一个Numpy数组,其中包含两个(Python-)列表。当我尝试将一个元素附加到其中一个列表时,代码崩溃了。
import numpy as np
list0 = [0,0,0]
list1 = [1,1,1]
#list1.append(0)
print(type(list0))
print(type(list1))
array0 = np.array((list0, list1))
array0[0].append(42)
print(array0)
令人困惑的是,当我取消注释第4行时,代码工作正常。
我收到错误消息:
File "test.py", line 10, in <module>
array0[0].append(3)
AttributeError: 'numpy.ndarray' object has no attribute 'append'
我运行python 3.5.1和numpy 1.10.4
答案 0 :(得分:0)
如何使用numpy的堆栈功能?您可以使用vstack
(垂直堆栈)和hstack
(水平堆栈)将列表/数组附加在一起。然后,您还可以继续将更多列表/数组堆叠到新创建的堆栈上。我在下面给出三个例子。
Python(保存在文件stackingArrays中)
import numpy as np
list0 = [0,0,0]
list1 = [1,1,1]
# stack vertically
array_v=np.vstack((list0,list1))
print array_v
# stack horizontally
array_h=np.hstack((list0,list1))
print array_h
# stack more on to stacked array
array_v2=np.vstack((array_v,list1))
print array_v2
<强>输出强>
> python -i stackingArrays.py
>>> [[0 0 0]
[1 1 1]]
>>> [0 0 0 1 1 1]
>>> [[0 0 0]
[1 1 1]
[1 1 1]]
答案 1 :(得分:0)
列表具有相同的大小,这就是为什么它成为2d np数组的原因。
因此,您试图将一个值附加到np数组的行之一(您不能这样做,因为它不再是列表)。
我建议您使用np个列表数组,如here所示。
祝你好运;)