1
我知道這是一個非常經典的問題,但經過很多帖子後,我決定將它帶回來,而無法找到一個看似基本的東西的優雅解決方案。 問題:從python計數器字典到nd numpy數組
我有一個大的數據集的計數器字典,有意義的整數鍵和整數事件:
co = Counter({8046: 1360, 10046: 1248, 11046: 1024})
我只是想一個基本的整型數組來結束:
a = np.array([[8046,1360],[10046,1248],[11046,1024]])
這個問題的特殊性(或缺乏特異性)是我有整數鍵,我不需要結構化數組。下面
dtype = dict(names = ['id','data'], formats=['i8','i8'])
array = np.fromiter(iter(co.items()), dtype=dtype)
不是很令人滿意,與
a = [(8046, 1360) (10046, 1248) (11046, 1024)]
結束了這是否只是一種D型的問題嗎?非常感謝!
是的!我迷失在這些類型和迭代器中,忘記了基本知識。所以np.array(list())組合避免了我們指定dtypes。現在我徘徊爲什麼'np.fromiter'如此刻薄,但我想我只是錯過了一些東西。謝謝@kennytm。 – Etienne
如果我沒有錯,一個簡單的'co.items()'應該足以代替'list(co.items())'。 – JRodDynamite
@JRodDynamite'np.array(co.items())'創建一個對象數組而不是2D數組。 'array(dict_items([(8046,1360),(10046,1248),(11046,1024)]),dtype = object)' – kennytm