首页 > 解决方案 > 无法正确标注 numpy 数组的字典

问题描述

我有以下数据。

第 0 列是文本,第 1 列是数组数组

inabb 是我的字典名

for i in range(len(t_df)):
    if t_df.iloc[i][0] in inabb.keys():
        inabb[t_df.iloc[i][0]] = np.vstack((inabb[t_df.iloc[i][0]],[t_df.iloc[i][1]]))
    else:
        inabb[t_df.iloc[i][0]] = [t_df.iloc[i][1]]

下面是输出的片段

{'1704_CG08302001.json': array([[[0.47488073, 0.11274771, 0.53121686, 0.16514863]],
 
        [[0.42959082, 0.5500572 , 0.49034557, 0.60341084]],
 
        [[0.16006097, 0.1384718 , 0.22412956, 0.19182546]],
 
        [[0.10593408, 0.72917306, 0.16779338, 0.7834794 ]]], dtype=float32),
 '1704_CG08302002.json': [array([[0.5024965 , 0.5310023 , 0.55993724, 0.58054495]], dtype=float32)],
 '1704_CG08302003.json': array([[[0.33459264, 0.02700076, 0.38651025, 0.06987424]],
 
        [[0.5245891 , 0.03366997, 0.5776113 , 0.07844894]]], dtype=float32),
 '1704_CG08302004.json': array([[[0.16889802, 0.24899009, 0.21750176, 0.2880526 ]],
 
        [[0.20756009, 0.6319932 , 0.25837308, 0.67391384]],
 
        [[0.52127516, 0.07368521, 0.5444724 , 0.11655869]],
 
        [[0.40528896, 0.52528584, 0.45499736, 0.5681593 ]]], dtype=float32)

我需要的是所有值都具有相同的数组维度,可以是 3D 数组,或者最好是 [N,4] 形状的 numpy 数组。

我尝试了不同的代码,但无法对齐维度。当没有 'np.vstack()' 并且只有一个数组输入时,问题就出现了,它与 array>len(1) 的其他数组的格式不同

您可以在下面的第二个键值对中看到这一点。

标签: pythonpandasnumpy

解决方案


推荐阅读