我试图对列表和 numpy 数组进行一些简单的操作,但遇到了一些简单的事情:
a=np.arange(12)
a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
a=np.reshape(a,(3,4))
a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
b=np.arange(12,24)
b
array([12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
b=np.reshape(3,4)
list1 = [(a,'a'),(b,'b')]
data = [(i, j) for i,j in list1]
当我尝试这样做时:
data[0][0]=np.delete(data[0][0], np.s_[-1::],0)
我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
但如果我这样做:
cop=np.delete(data[0][0], np.s_[-1::],0)
cop
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
它工作得很好。
但我也做不到:
data[0][0]=np.copy(cop)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
但如果我检查类型,两者实际上都是数组:
type(cop)
<type 'numpy.ndarray'>
type(data[0][0])
<type 'numpy.ndarray'>
好几个小时我都找不到错误。