2014-12-05 30 views
1

,我有以下數據在numpy的陣列設置:多dtypes

陣列1:

[[a, 1, 20] 
[a, 3, 40] 
[b, 1, 20] 
[b, 2, 40] 
[c, 5, 90]] 

陣列2:

[[a, 2] 
[a, 5]] 

什麼我想完成如下:Array2[0,0]=aArray2[0,1]=2 我想插入從第一個數組中找到a,2,30

要做到這一點我使用np.where(Array1==item)[0]看起來對'a',我不能,但因爲用於進口dtype是一個字符串,而不是一個int插值。

自從我使用Numpy之後已經有一段時間了,所以如果我完全處於雜草狀態,請告訴我。

+0

在''a''和'2'之間插值意味着什麼?你還會使用其他什麼類型的「a」? – abarnert 2014-12-06 00:46:01

+0

什麼是'a'。它是一個字符串嗎?一個變量?這些陣列的'dtype'是什麼? – hpaulj 2014-12-06 02:08:26

回答

0

我不完全清楚你想要做什麼,但它聽起來像你想指定一個聚合dtype。

這在dtype文檔中有詳細說明。

例如,這裏是指定每行有1個字符的字符串和64位機浮點(當你不關心的字段名稱是什麼)的方式:

dt = np.dtype('U1, f8') 

有當然有其他的方法來寫這個;詳細信息請閱讀完整頁面。

而且,假設您已經閱讀了loadtxt,文檔中有一個很好的使用這種dtype的例子。例如:

>>> s2 = 'a 2\na 5\n' 
>>> i2 = io.StringIO(s2) 
>>> a2 = np.loadtxt(i2, 'U1, i4') 
>>> a2 
array([('a', 2), ('a', 5)], 
     dtype=[('f0', '<U1'), ('f1', '<i4')]) 
相關問題