如何围绕中心X轴旋转2D数组?通用[n,m]数组实现方法问询
NumPy二维数组行反转实现方法
问题示例
原2D数组:
import numpy as np arr = np.array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]])
期望转换后的数组:
array([[ 9, 10, 11, 12], [ 5, 6, 7, 8], [ 1, 2, 3, 4]])
实现方法
针对示例的快速实现
直接利用NumPy的切片语法,对行维度进行逆序:
reversed_arr = arr[::-1]
执行后reversed_arr就是目标数组。这里[::-1]表示对第一个轴(行)从后往前取所有元素,列轴保持不变。
通用[n,m]数组的实现
对于任意行数为n、列数为m的NumPy二维数组,上述切片方法完全通用,无需修改。另外也可以使用np.flip()函数指定轴来实现:
reversed_arr = np.flip(arr, axis=0)
其中axis=0指定对行维度进行反转,若要反转列则设为axis=1。这两种方法都不会修改原数组,而是返回一个新的反转后的数组。如果需要原地修改原数组,可以使用切片赋值:
arr[:] = arr[::-1]
内容的提问来源于stack exchange,提问作者Miss_Orchid
相关产品推荐
相关产品推荐

