np.array的np.array深副本 [英] Deep copy of a np.array of np.array
本文介绍了np.array的np.array深副本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有不同的numpy的阵列的numpy的数组,我想使阵列的深层副本。我发现了以下工作:
导入numpy的是NP成对= [(2,3),(3,4),(4,5)]
array_of_arrays = np.array([np.arange(A * B).reshape(A,B)为(A,B)在对数])A = array_of_arrays [:]#不工作
B = array_of_arrays [:] [:]#不工作
C = np.array(array_of_arrays,副本= TRUE)#不工作
D = np.array([np.array(X,复制=真)在array_of_arrays X])array_of_arrays [0] [0,0] = 100
打印[0] [0,0],B [0] [0,0],C [0] [0,0],D [0] [0,0]
为d做到这一点的最好方法是什么?是否有我错过了一个深拷贝功能?
什么是与此不同的数组大小的数组的每个元素进行交互的最佳方式?
解决方案
导入numpy的是NP
进口副本成对= [(2,3),(3,4),(4,5)]
array_of_arrays = np.array([np.arange(A * B).reshape(A,B)为(A,B)在对数])A = copy.deepcopy(array_of_arrays)
随意这里阅读了更多有关此。
呵呵,这里是最简单的测试用例:
A [0] [0,0]
打印[0] [0,0],array_of_arrays [0] [0,0]
I have a numpy array of different numpy arrays and I want to make a deep copy of the arrays. I found out the following:
import numpy as np
pairs = [(2, 3), (3, 4), (4, 5)]
array_of_arrays = np.array([np.arange(a*b).reshape(a,b) for (a, b) in pairs])
a = array_of_arrays[:] # Does not work
b = array_of_arrays[:][:] # Does not work
c = np.array(array_of_arrays, copy=True) # Does not work
d = np.array([np.array(x, copy=True) for x in array_of_arrays])
array_of_arrays[0][0,0] = 100
print a[0][0,0], b[0][0,0], c[0][0,0], d[0][0,0]
Is d the best way to do this? Is there a deep copy function I missed? And what is the best way to interact with each element in this array of different sized arrays?
解决方案
import numpy as np
import copy
pairs = [(2, 3), (3, 4), (4, 5)]
array_of_arrays = np.array([np.arange(a*b).reshape(a,b) for (a, b) in pairs])
a = copy.deepcopy(array_of_arrays)
Feel free to read up more about this here.
Oh, here is simplest test case:
a[0][0,0]
print a[0][0,0], array_of_arrays[0][0,0]
这篇关于np.array的np.array深副本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文