我想設置一個dtype,這樣我可以按該數組中的一列進行排序。舉一個例子,假設我在我的數組中有一排[1 2]
。在看到dtype後,它變成了[(1,1),(2,2)]
例如,這是我嘗試運行的代碼。在numpy中設置dtype似乎使每個值成爲一個元組
print "original shape \n",b.shape
print 'original \n',b
typ = [('dist',float),('ys',float)]
p = np.array(b,dtype=typ)
print "new shape \n", p.shape
print "new \n",p
,這是輸出
original shape
(3, 2)
original
[[ 10.29563014 1. ]
[ 6.08276253 3. ]
[ 18.44670431 7. ]]
new shape
(3, 2)
new
[[(10.295630140987, 10.295630140987) (1.0, 1.0)]
[(6.082762530298219, 6.082762530298219) (3.0, 3.0)]
[(18.44670431269499, 18.44670431269499) (7.0, 7.0)]]
技術上的形狀沒有改變,但我不知道爲什麼它基本上使得元組中的每個條目自身的副本。 任何想法如何解決這個問題?
重讀化合物D型文檔。注意結構數組的顯示風格。 – hpaulj
'astype'不起作用,因爲它將每個元素轉換爲新的dtype。您期望它將每行(元素對)轉換爲新的dtype。 – hpaulj