Ale*_*azo 6 python arrays indexing numpy
我有一个n行数组A,其中n行为3行.每行由三个整数组成,每个整数都是一个整数,它引用numpy数组中的另一个位置.例如,如果我想要N[4]引用的行,我使用N[N[4]].视觉:
N = np.array([[2, 3, 6], [12, 6, 9], [3, 10, 7], [8, 5, 6], [3, 1, 0] ... ])
N[4] = [3, 1 ,0]
N[N[4]] = [[8, 5, 6]
[12, 6, 9]
[2, 3, 6]]
Run Code Online (Sandbox Code Playgroud)
我正在构建一个修改N的函数,我需要为某些指定的x修改N [N [x]],这也是一个参数(例子中为4).我想将子流中的所有6更改为另一个数字(假设为0),所以我使用numpy.where来查找索引,这是
where_is_6 = np.where(N[N[4]] == 6)
Run Code Online (Sandbox Code Playgroud)
现在,如果我直接替换,就像N[N[4]][where_is_6] = 0没有变化.如果我像以前一样引用var = N[N[4]],那么var[where_is_6]更改已在函数本地完成,并且N不会全局更改.在这种情况下我该怎么办?或者我做错了什么?
听起来你只需要将索引转换为原始N坐标:
row_idxs = N[4]
r,c = np.where(N[row_idxs] == 6)
N[row_idxs[r],c] = 0
Run Code Online (Sandbox Code Playgroud)