2016-09-25 4 views
0

私はpythonに新しいです。そして、何かが私を困惑させるのを見つける。`numpy`でaliasを正しく使う方法は?

import numpy as np 
a = np.arange(10) 
b = a[3:6] 
b[2] = 1000 
print "a is "+ str(a) 
print "b is "+ str(b) 

出力は次のとおり

[0 1 2 3 4千6 7 8 9]

bは[3 4千]

しかしでMATLABまたはMathematica、bを変更してもリストaには影響しません。

だから、numpyのエイリアスを設計する目的は何ですか? 利点がありますか?

答えて

0

だから、numpyでエイリアスを設計する目的は何ですか?それにはいくつかの利点がありますか?

2つの可能な利点があります。

  1. それはスペースを節約:bはわずか数十を取るに関係なく、それはa中を指しどのように大規模なスライスのバイト。たとえば、aのサイズが1 GBで、そのうちの半分がbだったとします。
  2. インプレース修正が可能です。これは、あなたが不利(または驚き)として見るかもしれない利点を正確に呼び出すことです。

NumPyは配列操作と行列操作の多少の低レベルの機能ですが、 (例:SettingWithCopyWarningと表示されます)この警告は必ずしも役立たず、むしろ頻繁にやりたいことをやり遂げるようになります。

関連する問題