我正在尝试在两个列表之间交换元素,而 python 似乎不允许这种情况发生。
def swap(A,B,i,j):
TEMP_B = B[j]
B[j] = A[i]
A[i] = TEMP_B
return A,B
X = np.array([[1.25,3],[1.5,2],[2,2.75],[2.25,2],[2,0.5],[3.25,0.75],
[3.5,2.25],[4.25,0.75]])
Y = np.array([[2.75,3.5],[3.25,3],[4.5,2.75],[3.5,4.75]])
X,Y = swap(X,Y,1,1)
OUTPUT:::
Temp = [ 3.25 3. ]
before swap
X[ 1 ]: [ 1.5 2. ]
Y[ 1 ]: [ 3.25 3. ]
Temp = [ 1.5 2. ]
after swap
X[ 1 ]: [ 1.5 2. ]
Y[ 1 ]: [ 1.5 2. ]
我希望 B[j] = old A[i] 和 A[i] = old B[j] 但是,只有一个项目被交换......不知道是什么问题。这是它得到的输出:
我期待 X[1] = [3.25,3] 但结果是 [1.5,2]
这不是来自您swap
使用常规数组的函数它与您正在使用的事实有关numpy.array
。
您需要这样做,TEMP_B = np.copy(B[j])
因为 Numpy 懒惰地复制数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句