Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用NumPy中的切片来反转二维矩阵的值?_Python_Numpy_Matrix_Slice_Reverse - Fatal编程技术网

Python 如何使用NumPy中的切片来反转二维矩阵的值?

Python 如何使用NumPy中的切片来反转二维矩阵的值?,python,numpy,matrix,slice,reverse,Python,Numpy,Matrix,Slice,Reverse,要反转最后一行是第一行,我们可以写: import numpy as np a = np.arange(20) a = a.reshape(4,5) c = a[::-1,:] print c c: [[15 16 17 18 19] [10 11 12 13 14] [ 5 6 7 8 9] [ 0 1 2 3 4]] 但是切片反转如何使用最后一列最后一行之前的第一行呢 我这边只有一条线。但是,在矩阵开始之前,我如何用这个语句到达矩阵呢 a[-1, -1::-1

要反转最后一行是第一行,我们可以写:

import numpy as np
a = np.arange(20) 
a = a.reshape(4,5) 
c = a[::-1,:]
print c 

c:
[[15 16 17 18 19]
 [10 11 12 13 14]
 [ 5  6  7  8  9]
 [ 0  1  2  3  4]]
但是切片反转如何使用最后一列最后一行之前的第一行呢

我这边只有一条线。但是,在矩阵开始之前,我如何用这个语句到达矩阵呢

a[-1, -1::-1]

a:
[19 18 17 16 15]

通过在每个轴中使用切片::-1,可以反转二维阵列的行和列:

>>> a[::-1, ::-1]
array([[19, 18, 17, 16, 15],
       [14, 13, 12, 11, 10],
       [ 9,  8,  7,  6,  5],
       [ 4,  3,  2,  1,  0]])

通过在每个轴中使用切片::-1,可以反转二维阵列的行和列:

>>> a[::-1, ::-1]
array([[19, 18, 17, 16, 15],
       [14, 13, 12, 11, 10],
       [ 9,  8,  7,  6,  5],
       [ 4,  3,  2,  1,  0]])

其他两种方式:

在将其设置为2d之前反转:

In [928]: np.arange(20)[::-1].reshape(4,5)
Out[928]: 
array([[19, 18, 17, 16, 15],
       [14, 13, 12, 11, 10],
       [ 9,  8,  7,  6,  5],
       [ 4,  3,  2,  1,  0]])
反转这些值,并将其复制回平面


其他两种方式:

在将其设置为2d之前反转:

In [928]: np.arange(20)[::-1].reshape(4,5)
Out[928]: 
array([[19, 18, 17, 16, 15],
       [14, 13, 12, 11, 10],
       [ 9,  8,  7,  6,  5],
       [ 4,  3,  2,  1,  0]])
反转这些值,并将其复制回平面


我不太清楚你在问什么-你想倒转a的最后一行,保持其他行不变吗?如果你能发布你想要的数组,那么一切都会变得清晰。谢谢[19 18 17 16 15][14 13 12 11 10][9 8 7 6 5][4 3 2 1 0]]保留其他行,对不起!啊,好的-没问题,我在下面贴了一个答案…@richardsonbruno别忘了,如果你想让2D数组水平翻转,你可以接受答案。如果是这样的话,您可以使用numpy的flip lr功能:我不太清楚您在问什么-您想只反转a的最后一行并保持其他行不变吗?如果你能发布你想要的数组,那么一切都会变得清晰。谢谢[19 18 17 16 15][14 13 12 11 10][9 8 7 6 5][4 3 2 1 0]]保留其他行,对不起!啊,好的-没问题,我在下面贴了一个答案…@richardsonbruno别忘了,如果你想让2D数组水平翻转,你可以接受答案。如果是这样,您可以使用numpy的flip lr功能: