在R中,我的想法是用Python语言来做,如果我在Python语言中应用M[index],顺序与R中的结果不同。
R中的代码:
> M = matrix(c("a",0,"z",
+ 0,0,"b",
+ "c","y",0), nrow = 3, byrow = TRUE)
> M
[,1] [,2] [,3]
[1,] "a" "0" "z"
[2,] "0" "0" "b"
[3,] "c" "y" "0"
>
> index = c(3,2,1)
>
> M[index,index]
[,1] [,2] [,3]
[1,] "0" "y" "c"
[2,] "b" "0" "0"
[3,] "z" "0" "a"
> Python中的代码:
M = np.array([["a",0,"z"],
[0,0,"b"],
["c","y",0]])
index = [2,1,0]
print(M[index])
array([['c', 'y', '0'],
['0', '0', 'b'],
['a', '0', 'z']], dtype='<U1')发布于 2020-07-25 13:55:09
>>> M = np.array([["a",0,"z"],
[0,0,"b"],
["c","y",0]])
>>> np.fliplr(np.flipud(M))
array([['0', 'y', 'c'],
['b', '0', '0'],
['z', '0', 'a']], dtype='<U1')或者,您可以使用np.rot90旋转90度,两次
>>> np.rot90(M, 2)
array([['0', 'y', 'c'],
['b', '0', '0'],
['z', '0', 'a']], dtype='<U1')如果你喜欢按索引来做,你可以这样做:
>>> index = [2,1,0]
>>> M[index, ::-1]
array([['0', 'y', 'c'],
['b', '0', '0'],
['z', '0', 'a']], dtype='<U1')
# or,
>>> M[::-1, index]
array([['0', 'y', 'c'],
['b', '0', '0'],
['z', '0', 'a']], dtype='<U1')它本质上类似于:
>>> M[::-1, ::-1]
array([['0', 'y', 'c'],
['b', '0', '0'],
['z', '0', 'a']], dtype='<U1')https://stackoverflow.com/questions/63084759
复制相似问题