2

私はデータ分析などにPythonを使用することを学んでいますが、scipyクックブックのこのコードで何が起こっているのか少し混乱しています。

クックブックが統合とその後のプロットプロセスをmatplotlibを介して説明する場合、最初に次のようになります。

t = linspace(0, 15, 1000)
X0 = array([10,5])
X = scipy.integrate.odeint(dX_dt, X0, t)
rabbits, foxes = X.T

このコードは何をしますか?

rabbits, foxes = X.T

具体的には、XTは何をしますか?

4

2 に答える 2

9

X.Tの転置ですX。したがって、その行でXは、形状がの配列である必要があります(N,2)(2,N)それを転置すると、開梱できる形状の配列が得られます。

検討:

>>> import numpy as np
>>> a = np.arange(10).reshape((5,2))
>>> a
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])
>>> B,C = a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> B,C = a.T
>>> B
array([0, 2, 4, 6, 8])
>>> C
array([1, 3, 5, 7, 9])

また、可能な限り、転置は新しいビューを返す(データはコピーされない)ため、これは非常に効率的な操作であることに注意してください。

于 2012-10-26T17:23:23.793 に答える
0

T は転置を表します。したがって、X は最初の要素にウサギが割り当てられ、2 番目の要素にキツネが割り当てられるように配置されます。これらはリストではなく配列 (線形代数の行列に相当) であるため、配置が重要になります。

于 2012-10-26T17:26:49.607 に答える