也許是這樣的:
>>> import numpy as np
>>> data = [1,2,3]
>>> a = np.empty([len(data),2], dtype=object)
>>> a
array([[None, None],
[None, None],
[None, None]], dtype=object)
>>> a[:,0]='a'
>>> a
array([[a, None],
[a, None],
[a, None]], dtype=object)
>>> a[:,1]=data
>>> a
array([[a, 1],
[a, 2],
[a, 3]], dtype=object)
>>> data2=np.array([[1,2],[3,4],[5,6]])
>>> data2
array([[1, 2],
[3, 4],
[5, 6]])
>>> b = np.empty([len(data2),3],dtype=object)
>>> b
array([[None, None, None],
[None, None, None],
[None, None, None]], dtype=object)
>>> b[:,0]='a'
>>> b
array([[a, None, None],
[a, None, None],
[a, None, None]], dtype=object)
>>> b[:,1:]=data2
>>> b
array([[a, 1, 2],
[a, 3, 4],
[a, 5, 6]], dtype=object)
編輯:在響應由OP您可以通過此標籤的欄目發表評論:
>>> data2=np.array([[1,2],[3,4],[5,6]])
>>> c = zip('a'*len(data2),data2[:,0],data2[:,1])
>>> c
[('a', 1, 2), ('a', 3, 4), ('a', 5, 6)]
>>> d = np.array(c,dtype=[('A', 'a1'),('Odd Numbers',int),('Even Numbers',int)])
>>> d
array([('a', 1, 2), ('a', 3, 4), ('a', 5, 6)],
dtype=[('A', '|S1'), ('Odd Numbers', '<i4'), ('Even Numbers', '<i4')])
>>> d['Odd Numbers']
array([1, 3, 5])
我不很瞭解但數組d是一個記錄數組。你可以在Structured Arrays (and Record Arrays)找到信息。我遇到了「A」列的dtype問題。如果我把('A', str)
那麼我的一個「A」列總是空的,''
。看着Specifying and constructing data types後,我嘗試使用('A', 'a1')
,它的工作。
這很好用;謝謝。我能否問一下,你是否會知道如何調整dtype,以便命名每個列表中的列?例如,在上面的最後一個數組中,每列的dtype名稱將是'A列','奇數','偶數'? 我意識到這是一個完全不同的問題,到一個我張貼,所以如果你不能回答這個問題,我明白了! 非常感謝! – FreeBixi