[英]python dictionary to numpy array slicing
我有一本字典。
cars_dict= { 'cars_per_cap': [809, 731, 588, 18, 200, 70, 45], 'country': ['United States','Australia','Japan','India','Russia','Morocco','Egypt'], 'drives_right': [True, False, False, False, True, True, True] }
我通過這樣做將其更改為 NumPy
cars_numpy = np.array(cars_dict)
cars_numpy = array({'cars_per_cap': [809, 731, 588, 18, 200, 70, 45], 'country': ['United States', 'Australia', 'Japan', 'India', 'Russia', 'Morocco', 'Egypt'], 'drives_right': [True, False, False, False, True, True, True]}, dtype=object)
我想做切片並從中得到“美國”
print(cars_numpy[1][0])
不工作。
我得到的錯誤是這個
IndexError Traceback (most recent call last)
<ipython-input-121-54a4195f7446> in <module>
----> 1 print(cars_numpy[1][0])
IndexError: too many indices for array
字典不是列表,您不能將其傳遞給 numpy 並期望得到相同的結果,它沒有排序,它使用內部數據結構以提高效率。
你可以做的是:
cars_numpy = np.array(list(cars_dict.values()))
這會將它們放入一個數組中,但是您不能保證使用此方法的鍵之間的順序,例如country
行可能在cars_per_cap
之前。
我有幾點建議——
list(dictionary.values())
獲得。np.array(dictionary)
將為您提供一個 NumPy 數組,其中包含一個包含字典的條目。 因此錯誤IndexError: too many indices for array
因為您要的是行和列,但它在arr[0]
只有一個元素arr[1][0]
是使用 numpy 的一種非常低效的方式。 相反,請嘗試arr[1,0]
values()
)將保留此順序。因此這將起作用 -
np.array(list(cars_dict.values()))[1,0]
'United States'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.