使用字符串作为索引的Python ndarray的构造

时间:2019-02-15 13:17:32

标签: python numpy

在python方面,我无疑是一名新手。大约花了1周的时间来学习它,并意识到这里应该使用很多工具。其中之一是numpy.darray。但是,我很难将其应用于我的问题。

我具有以下数组数据结构:字符串->值。那就是我想要的

a [“ string1”] = 4.5

然后我需要将此数组与“ attr”-> a [“ string1”] 所在的对象相关联,所以最后我得到以下内容

b [“ attr”]->(a [“ string1”]-> 4.5)

这样,如果我要打如下电话

b [“ attr”] [“ string1”] ,它将返回4.5

换句话说,我可以使用2D numpy数组而不是整数来访问我的数组。也许还有另一种更好的方法可以在python中做到这一点?

2 个答案:

答案 0 :(得分:3)

您正在寻找字典。请参阅Data Structures: 5.5. Dictionaries。字典使您不仅可以存储数值,还可以存储其他数据结构作为列表,数组,数据框或字典本身

您的示例:

a = {"string1": 4.5}

a["string1"]
> 4.5

b = {"att": a}

b["attr"]["string1"]
> 4.5

答案 1 :(得分:0)

the other answer所述,您很可能想要一本字典。但是,仅作为参考,存在类似NumPy的结构可以通过字符串索引,即PandasSeriesDataFrame提供的结构(对于二维以上的结构,{ {3}})。例如,使用Series对象:

import pandas as pd

s = pd.Series([1, 2, 3], index=['abc', 'def', 'ghi'])
print(s)
# abc    1
# def    2
# ghi    3
# dtype: int64
print(s['abc'])
# 1
print(s[['def', 'ghi']])
# def    2
# ghi    3
# dtype: int64