1

私は標準のデータ構造としてリスト(およびリストのリスト)を持っています(私の関数のほとんどはリスト/リストのリストを返します)。しかし今、私はいくつかのNumpy関数を使用する必要があります。numpy / scipyの関数を使用する前に、すべてのリストをnumpy配列に変換する必要がありますか?例えば

>>>x= [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
>>>y= [ 1, 10, 20]
>>>dot(x,y)
#array([ 81, 174, 267])
>>>X_np=array(x)
>>>y_np=array(y)
>>>dot(x_np,y_np)
#array([ 81, 174, 267])

この場合のように、dot(x、y)とdot(x_np、y_np)は同じ結果をもたらしたので、numy配列の代わりにlistを使用しても違いはありません...しかし、これはすべてのnumpy/scipy関数またはIの場合です。my_np_array= array(my_list)いずれか/すべてのnumpy/scipy関数を呼び出す前に行う必要がありますか?

4

1 に答える 1

3

ほとんどすべてのnumpy/scipy関数は、操作する前に入力を配列に変換します。しかし、なぜ私を信頼するのですか?必要なものを試して、それが機能するかどうかを確認してください。

np.put例外は、たとえば、その場で配列を変更する関数です。

>>> np.put([1,2,3],[0,1],[2,1])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 394, in put
    return a.put(ind, v, mode)
AttributeError: 'list' object has no attribute 'put'
于 2012-07-10T22:51:43.003 に答える