a = np.array([1,2,3])a.append(5) # this does not worka = np.append(a,5) # this is the only way
而对于本机python列表,
a = [1,3]a.append(4) # this modifIEs aa # [1,3,4]
为什么numpy ndarray设计成这种方式?我正在编写ndarray的子类,有没有像本机python数组一样实现“append”的方法?
解决方法 NumPy大量使用视图,这是python列表不支持的功能.视图是一个使用另一个对象的内存而不是拥有自己的内存的数组;例如,在以下代码段中a = numpy.arange(5)b = a[1:3]
b是一个视图.
视图与就地附加或其他就地改变大小的 *** 作相互作用非常差.数组突然不是它们应该是视图的数组的视图,或者它们将是解除分配的内存的视图,或者一个数组上的附加是否会影响它所看到的数组或者各种其他问题是不可预测的. .例如,在b.append(6)之后看起来会是什么样子?或者a.clear()之后会是什么样子?你可以做出什么样的性能保证?可能不是List.append的摊销常数时间保证.
如果你想追加,你可能不应该使用NumPy数组;你应该使用一个列表,并在完成追加后从列表中构建一个数组.
总结以上是内存溢出为你收集整理的python – 为什么numpy ndarray的insert和append会返回一个新数组而不是修改原始数组?全部内容,希望文章能够帮你解决python – 为什么numpy ndarray的insert和append会返回一个新数组而不是修改原始数组?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)