0

有没有一种简单的方法来扭转三角矩阵。

import numpy as np
shape=(4,8) 

x3=np.ones(shape) 

for m in range(len(x3)):
    step = (m * int(2)+1) #per step of 2 zeros
    for  n in range(int(step), len(x3[m])):
        x3[m][n] = 0

给了我这个矩阵:

array([[1., 0., 0., 0., 0., 0., 0., 0.],
       [1., 1., 1., 0., 0., 0., 0., 0.],
       [1., 1., 1., 1., 1., 0., 0., 0.],
       [1., 1., 1., 1., 1., 1., 1., 0.]])

我想把它改成这样:

array([[0., 0., 0., 0., 0., 0., 0., 1.],
       [0., 0., 0., 0., 0., 1., 1., 1.],
       [0., 0., 0., 1., 1., 1., 1., 1.],
       [0., 1., 1., 1., 1., 1., 1., 1.]])

有没有一种简单的方法可以做到这一点?

4

1 回答 1

3

np.flip来自numpy包的诀窍:

A = array([[1., 0., 0., 0., 0., 0., 0., 0.],
           [1., 1., 1., 0., 0., 0., 0., 0.],
           [1., 1., 1., 1., 1., 0., 0., 0.],
           [1., 1., 1., 1., 1., 1., 1., 0.]])

np.flip(A, 1)
#returns what you want : 1 for vertical symetry

array([[0., 0., 0., 0., 0., 0., 0., 1.],
       [0., 0., 0., 0., 0., 1., 1., 1.],
       [0., 0., 0., 1., 1., 1., 1., 1.],
       [0., 1., 1., 1., 1., 1., 1., 1.]])
于 2018-03-26T12:15:32.427 回答