【发布时间】:2016-08-04 05:14:58
【问题描述】:
我想创建一个 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 上运行
【问题讨论】:
-
我刚刚发现
np.array(((0,0,0),(1,1,1)))试图创建一个二维数组。如果两个列表(例如(0,0,0)和(1,1,1))具有不同的大小(例如(0,0)和(1,1,1)),则不会发生这种情况。用两个空列表初始化数组的一种方法是写array0 = np.empty(2, dtype=np.object)array0[:] = [], [] -
是的,
np.array默认创建一个多维数组。制作对象 dtype 是第二类备份选择。使用普通列表可能会更好,甚至更快。
标签: arrays list python-3.x numpy append