構造アレイのアプローチ:
はあなたの列の仕様に応じDTYPEを定義:
In [460]: dt=np.dtype('O,U10,f,i')
In [461]: from datetime import datetime
Initalize 3つの要素(不3×4)と空の配列、
In [462]: A = np.empty((3,), dtype=dt)
In [463]: A
Out[463]:
array([(None, '', 0.0, 0), (None, '', 0.0, 0), (None, '', 0.0, 0)],
dtype=[('f0', 'O'), ('f1', '<U10'), ('f2', '<f4'), ('f3', '<i4')])
記入いくつかの値 - フィールド名(列番号ではない)によって
In [464]: A['f1']=['one','two','three']
In [465]: A['f0'][0]=datetime(2016, 10, 1, 1, 0)
In [467]: A['f2']=np.arange(3)
In [468]: A
Out[468]:
array([(datetime.datetime(2016, 10, 1, 1, 0), 'one', 0.0, 0),
(None, 'two', 1.0, 0),
(None, 'three', 2.0, 0)],
dtype=[('f0', 'O'), ('f1', '<U10'), ('f2', '<f4'), ('f3', '<i4')])
この配列の要素の表示:私はそれがdatetime
オブジェクトを保持できるので、第一フィールドobject
DTYPEを作ることにしました
In [469]: A[0]
Out[469]: (datetime.datetime(2016, 10, 1, 1, 0), 'one', 0.0, 0)
- 数値または文字列ではありません。 datetime
オブジェクトがない
np.datetime64
格納floatとして日付、および機能の多くを提供する:
In [484]: dt1=np.dtype('datetime64[s],U10,f,i')
In [485]: A1 = np.empty((3,), dtype=dt1)
In [486]: A1['f0']=datetime(2016, 10, 1, 1, 0)
In [487]: A1['f3']=np.arange(3)
In [488]: A1
Out[488]:
array([(datetime.datetime(2016, 10, 1, 1, 0), '', 0.0, 0),
(datetime.datetime(2016, 10, 1, 1, 0), '', 0.0, 1),
(datetime.datetime(2016, 10, 1, 1, 0), '', 0.0, 2)],
dtype=[('f0', '<M8[s]'), ('f1', '<U10'), ('f2', '<f4'), ('f3', '<i4')])
第三のアプローチは、アレイ全体オブジェクトDTYPEを作ることです。それは効果的に栄光のリストです。多くのオペレーションはプレーンな反復に頼っているか、あるいは実装されていないだけです。より一般的ですが、通常の数値配列の力を失ってしまいます。
['構造化配列](http://docs.scipy.org/doc/numpy/user/basics.rec.html)は1つのオプションです。 – Divakar