【发布时间】:2018-01-22 10:19:04
【问题描述】:
我有这个 numpy 数组:
array([ 0.49010508, 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0.09438115, 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ,
-1. , -1. , -1. , -1. , -1. ,
-1. , -1. , -1. , -1. , -1. ,
-1. , -1. ])
这是名为allSimilarity 的 5D numpy 数组的第一行。我用np.full() 定义了它,fill_value 是-1。计算后,我想删除最后一个无用的-1 值。所以,我计算了尺寸差异,但是当我使用 np.delete() 或 np.resize() 或 allSimilarity[index1][index2][index3][index4] = allSimilarity[index1][index2][index3][index4][:diff].copy()(其中 diff 是旧尺寸和新尺寸之间的尺寸差异)时,我得到了这个错误:
ValueError: could not broadcast input array from shape (55) into shape (67)
有什么建议吗?
提前致谢。
【问题讨论】:
-
当然,如果有更多维度的依赖数据将保持旧形状,则您无法将其删除(并因此调整其大小)。这就是错误告诉你的。也许让我们对其他数据有更多的了解?
-
您无法调整 ND 数组中单行的大小,如果您正在尝试这样做的话。当然,您可以调整所有行的大小 - 但所有行的大小必须相同。
-
那么,唯一的方法是在计算时排除
-1值?我可以在计算平均值或任何其他数学运算之前“屏蔽”-1值吗? -
-1来自哪里?听起来 NaN (np.nan) 可能更合适。