我有一个2D numpy
数组.有没有办法在其上创建包含第一k
行和所有列的视图?
关键是要避免复制基础数据(数组太大,以至于无法制作部分副本.)
假设我有以下矩阵/数组:
array([[0, 0, 1, 1, 1],
[0, 0, 1, 0, 1],
[1, 1, 0, 1, 1],
[1, 0, 1, 0, 0],
[1, 1, 1, 0, 0]])
Run Code Online (Sandbox Code Playgroud)
我想应用以下排列:
1 -> 5
2 -> 4
Run Code Online (Sandbox Code Playgroud)
结果应该是:
array([[1, 1, 1, 0, 0],
[1, 0, 1, 0, 0],
[1, 1, 0, 1, 1],
[0, 0, 1, 0, 1],
[0, 0, 1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)
现在,一种非常幼稚(且内存成本高)的方法可能是:
a2 = deepcopy(a1)
a2[0,:] = a1[4,:]
a2[4,:] = a1[0,:]
a = deepcopy(a2)
a2[:,0] = a[:,4]
a2[:,4] = a[:,0]
a3 = …
Run Code Online (Sandbox Code Playgroud)