我编写了一些代码来反转每隔一行的行。
import numpy as np
test_arr = np.arange(120).reshape(12,10)
test_arr = test_arr.tolist()
def rev_rows(matrix):
for I in range(len(matrix)): #did this to get the index of each row
if((int(I / 4) % 2) == True): #selct rows whose index divided by 4 truncate to an odd number
print("flip")
matrix[I].reverse() #flip said row
print(matrix[I])
rev_rows(test_arr)
Run Code Online (Sandbox Code Playgroud)
必须有一种更简单、更有效的方法来做到这一点。我在想另一种方法是使用切片等列表运算符,但我想不出比这更快的方法。numpy 有更简单的方法吗?
注意:矩阵的长度可以被 4 整除。即 (4x10), (8x10), ...
很抱歉切片的用法不明确。我所说的切片是一组行(例如 test_arr[3] -> test_arr[7])。因此,反转所有其他切片将反转索引 3 和 7 之间的每一行。我在关于切片运算符的小简介中我正在谈论这个运算符 -> [3:7]。我没有使用它们的经验,我在某处读到它们被称为切片,我的错。
python ×1