LoginSignup
1
1

More than 3 years have passed since last update.

MATLABを使っている人がPythonを使うときの注意点

Last updated at Posted at 2020-08-11

MATLABを使っている人がPythonを使うときの注意点

仕事で使用しているMATLABとPythonの注意点が書かれたサイトがあったので、備忘録として残しておきます。

・MATLAB に慣れた人が Python を始めるときの11の注意点

Pythonを使い始めてハマったこと

1."="による代入は値のコピーではなく、参照になっている。意図しないデータ変更が行われる可能性あり

対策 値をコピーしたい場合は .copy()を使うようにする。
import numpy as np
# =============================================================================
# b += 5 -> 元のaも変化する。
# =============================================================================
a = np.array([1,2,3])
print('a = ')
print(a)
print('\n')

b = a

b += 5  #元のaも変化する。
print('b = a , b += 5 を実行後')
print('a = ')
print(a)
print('b = ')
print(b)
print('\n')

# =============================================================================
# 'b = a , b = b + 5 -> 元のaは変化しない。
# =============================================================================
a = np.array([1,2,3])
b = a

b = b + 5 #元のaは変化しない。
print('b = a ,b = b + 5 を実行語')
print('a = ')
print(a)
print('b = ')
print(b)
print('\n')

# =============================================================================
# 'b = a , b[0] = 100 ->元のaも変化する。
# =============================================================================
a = np.array([1,2,3])
b = a

b[0] = 100
print('b = a ,b[0] = 100 を実行後')
print('a = ')
print(a)
print('b = ')
print(b)
print('\n')

# =============================================================================
# b = a.copy() b[0] = 100 ->元のaは変化しない。
# =============================================================================
a = np.array([1,2,3])
b = a.copy()

b[0] = 100
print('b = a.copy(),b[0] = 100 を実行後')
print('a = ')
print(a)
print('b = ')
print(b)
print('\n')
a = 
[1 2 3]


b = a , b += 5 を実行後
a = 
[6 7 8]
b = 
[6 7 8]


b = a ,b = b + 5 を実行語
a = 
[1 2 3]
b = 
[6 7 8]


b = a ,b[0] = 100 を実行後
a = 
[100   2   3]
b = 
[100   2   3]


b = a.copy(),b[0] = 100 を実行後
a = 
[1 2 3]
b = 
[100   2   3]

2.配列の型変換が自動で行われない。(配列要素に対して演算を行う場合のみ)

対策 array作成時に整数でセットせず、少数で指定する。またはdtype = floatで型指定する。
どちらにしても型への注意は必須。
1
1
1

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
1
1