当前位置:   article > 正文

Numpy原地与非原地操作

numpy原地

+=:原地操作

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

+:非原地操作

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

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

 

  1. import numpy as np
  2. a=np.array([1,2,3,4])
  3. b=a[:2]#a中的1、2个元素切片赋给b变量
  4. b[0]=10 #b中第一个元素改为10
  5. print (a)#切片操作会影响原始的值,原地操作,列表不会进行原地操作,这样Numpy对一维数组的操作比列表效率高
  6. print (b)
[10  2  3  4]
[10  2]
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/824481
推荐阅读
相关标签
  

闽ICP备14008679号