Python 矩陣翻轉180度
阿新 • • 發佈:2018-11-17
在對影象做卷積的時候要對核矩陣進行180度翻轉。用python實現了一下。這裡分享 一下吧。
首先需要說明的幾個基本問題。
1. 矩陣的切片:
可以參考 廖雪峰的官方網站-python-切片
這裡主要要知道的就是 A[::-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)