1. 程式人生 > >Python 矩陣翻轉180度

Python 矩陣翻轉180度

在對影象做卷積的時候要對核矩陣進行180度翻轉。用python實現了一下。這裡分享 一下吧。
首先需要說明的幾個基本問題。
1. 矩陣的切片:
可以參考 廖雪峰的官方網站-python-切片
這裡主要要知道的就是 A[::-1]這個操作對於行向量可以左右翻轉;對於二維矩陣可以實現上下翻轉。如圖:
向量翻轉

  1. map函式

這個也可以參考 廖雪峰的官方網站-python-map/reduce
通過map可以方便的實現迭代效果。
不要要注意:
python2中map的返回結果是一個list;而在python3中則是一個封裝的map物件。

>>> map
(int, b) <map object at 0x000001C64E7DE860>

這時候要想把map物件轉化為list,需要使用list函式:

>>> list(map(list,b))
[[0, 1], [2, 3]]

這樣要實現180度翻轉,只需要左右翻轉一下,然後上下翻轉即可:

import numpy as np

def fz(a):
    return a[::-1]
def FZ(mat):
    return np.array(fz(list(map(fz, mat))))

A = np.arange(16).reshape((4,4))
B = FZ(A)
print(A,'\n'
,B)

可以參考一行程式碼搞定矩陣旋轉——python