Numpy原地与非原地操作

+=:原地操作

     给数组分配了一块儿地,对它进行操作,就是在已有的地上进行翻新播种,任何改变都在原地进行

+:非原地操作

    给数组重新开辟了一块儿地,对它进行操作,不会影响原来的值

import numpy as np
a=np.array([1,2,3])
b=a
a+=np.array([1,1,1])#原地操作,在原有的操作空间中进行改变
print (a) #a也改变了
print (b) #b也改变了
c=np.array([1,2,3])
d=c
c=c+np.array([1,1,1])#非原地操作,操作会另外开启操作空间
print (c)#c已经重新指向了新的地方
print (d)#d依然指向原来分配给c的空间
[2 3 4]
[2 3 4]
[2 3 4]
[1 2 3]

 

import numpy as np
a=np.array([1,2,3,4])
b=a[:2]#a中的1、2个元素切片赋给b变量
b[0]=10 #b中第一个元素改为10
print (a)#切片操作会影响原始的值,原地操作,列表不会进行原地操作,这样Numpy对一维数组的操作比列表效率高
print (b)
[10  2  3  4]
[10  2]
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页