2016-12-14 3 views
0

私は4つのリスト(int, float, float, str)を持っています。しかし、私は彼らが"numpy.str_"として書く2-d numpy arrayを作成場所:2次元配列を異なる型の列として書く

bus_log = np.array([unix_datatime, x, y, bus_number]).transpose() 
print(type(bus_log[0][0])) 

結果:

<class 'numpy.str_'> 

私はこれを行う方法を知りません。私はタイプを変更しようとしましたが、それは助けになりませんでした。

+1

あなたはそのデータと1dの構造化された配列を作ることができます。 dtypeは4つのフィールドを指定します。 – hpaulj

答えて

1

結果numpyの配列がこのように書かれている場合、アレイ全体に対して1つの一般的なタイプがありますので、それは次のとおりですので、numpyのの鋳造ルールの、

bus_log = np.array([unix_datatime, x, y, bus_number]).transpose() 

numpyのは、文字列にすべてをキャストすることになりますが。アレイタイプはbus_log.dtypeプロパティで表示されます。

あなたは混合型で、このようにnumpyの配列を作成することができます。

a = np.zeros((1,1), dtype=[('unixtime', '<i4'), ('x', '<f4'), ('y', '<f4'),\ 
    ('bus_number', '|S20')]) 
a[0] = (unix_datatime, x, y, bus_number) 
+0

私はこれを実行するとエラーが発生しました:a [0] = [unix_datatime、x、y、bus_number] ValueError:次元1の配列軸にサイズ4のシーケンスをコピーできません – David

+0

はい、それはタプルリスト。今修正されました。 –

+0

今私は新しいエラーメッセージが表示されます:ValueError:シーケンスで配列要素を設定します。 – David