为什么asarray不直接修改我的列表?

时间:2018-04-29 04:51:53

标签: python arrays numpy

我正在尝试更改每个方案的第一个元素,但它似乎不起作用。我认为asarray会修改原始对象而不是制作副本。

 input:  
 x = ([1, 2, 3],[4,5,6])    
 np.asarray(x)[0][0] = 42    
 print(x)  

 output:  
 ([1, 2, 3], [4, 5, 6])  

 input:
 x = [1,2,3]  
 np.asarray(x)[0] = 42   
 print(x)

 output:  
 [1, 2, 3]  

1 个答案:

答案 0 :(得分:1)

如果原始对象已经是数组,则

asarray仅返回原始对象。如果您传递asarray嵌套列表,它会将列表的数据复制到新数组中。对于其他类型,它可能会返回视图或副本,具体取决于视图是否可行。