LoginSignup
0
0

More than 5 years have passed since last update.

Python+numpy行列上のfor文とJuliaのfor文の違いを吸収したい

Posted at

Python+Numpyを使っているときと,Juliaを使っているときで,間違ってやばいコードになることが多く(というか動かない)最近悩んでいる件を書きました.誰かいいアイデアを教えてください.

Python + numpyの場合

  • Anaconda 4.3.0 (64-bit), Python 3.6.0, IPython 5.1.0で試しました
import numpy as np
X = np.array([[1, 2, 3], [4, 5, 6]])
# X = np.matrix([[1, 2, 3], [4, 5, 6]]) でもだいたい同じ

for elem in X: print(elem)
# 出力
# [1 2 3] (matrixの場合は [[1 2 3]])
# [4 5 6] (matrixの場合は [[4 5 6]])
  • 慣れているのでこうなってほしい.

Juliaの場合

  • Julia 0.5.0で試しました
X = [1 2 3; 4 5 6]
# 出力
# 2x3 Array{Int64, 2}:
#  1 2 3
#  4 5 6

for elem in X; println(elem); end
# 出力
# 1
# 4
# 2
# 5
# 3
# 6
  • 個人的にはこのiterationがあまり直感に合わない(Python/Numpy脳とも言える)のでなんとかしたい.
  • 元々JuliaはRowかColumnのどっちかのイテレーションが遅いとかなんとか(詳細は知らない)
  • 死にそうな気分で次のようなコードを量産した
X = [1 2 3; 4 5 6]
m, n = size(X)
for i=1:m; println(X[i, :]); end
# 出力
  • 一応動く
  • 嫌な理由: 気分

調べたこと

一応いろんな議論されている(イマイチ古いけど).

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0