MATLAB: fliplr() > Numpy:実装 > 1次元とN(>1)次元で別処理が必要 | np.flipud(), np.fliplr(), [::-1], ascontiguousarray
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
MATLAB
>> xs = [3 1 4]
xs =
3 1 4
>> fliplr(xs)
ans =
4 1 3
>> xs = [3 1 4; 1 5 9]
xs =
3 1 4
1 5 9
>> fliplr(xs)
ans =
4 1 3
9 5 1
Numpy
関連: Numpy: fliplr() > ValueError: Input must be >= 2-d. > 1次元のarrayにはエラーを出す
1次元arrayに対してはfliplr()は上記のリンクのようにエラーを出す。
1次元arrayだけ別処理が必要になる。
反転方法として以下の情報がある。
https://stackoverflow.com/questions/6771428/most-efficient-way-to-reverse-a-numpy-array
以下の実装とした。
https://ideone.com/dZJLGr (Python 3.5)
import numpy as np
def get_fliplr(xs):
xs = np.array(xs)
if xs.ndim == 1:
return np.flipud(xs)
return np.fliplr(xs)
res = get_fliplr([3, 1, 4])
print(res)
res = get_fliplr([[3, 1, 4], [1, 5, 9]])
print(res)
Success #stdin #stdout 0.12s 24844KB
[4 1 3]
[[4 1 3]
[9 5 1]]
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.flipud.html
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.fliplr.html
備考
に記載の[::-1]
やascontiguousarray
も興味を引いた。
Author And Source
この問題について(MATLAB: fliplr() > Numpy:実装 > 1次元とN(>1)次元で別処理が必要 | np.flipud(), np.fliplr(), [::-1], ascontiguousarray), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/f6c0d1d0f912bec090cc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .