【发布时间】:2017-11-28 16:13:45
【问题描述】:
我有一个数据框,其值为new_df.values
arr = np.array([[ 0. , 0.31652875, 0.05650486, 0.11726623, 0.30987541,
0.30987541, 0.30987541],
[ 0.31652875, 0. , 0.34982559, 0.33382917, 0.00799828,
0.00799828, 0.00799828],
[ 0.05650486, 0.34982559, 0. , 0.07718834, 0.34384549,
0.34384549, 0.34384549],
[ 0.11726623, 0.33382917, 0.07718834, 0. , 0.32917553,
0.32917553, 0.32917553],
[ 0.30987541, 0.00799828, 0.34384549, 0.32917553, 0. ,
0. , 0. ],
[ 0.30987541, 0.00799828, 0.34384549, 0.32917553, 0. ,
0. , 0. ],
[ 0.30987541, 0.00799828, 0.34384549, 0.32917553, 0. ,
0. , 0. ]])
我找到了除零以外的最小值,比如 i.e
# new_df[new_df != 0].min().values this is want was used to get this
min_arr = np.array([ 0.05650486, 0.00799828, 0.05650486, 0.07718834, 0.00799828,
0.00799828, 0.00799828])
当我执行arr == min_arr 和np.isclose(arr,min_arr) 时,我得到:
array([[False, False, True, False, False, False, False],
[False, False, False, False, True, True, True],
[ True, False, False, True, False, False, False],
[False, False, False, False, False, False, False],
[False, True, False, False, False, False, False],
[False, True, False, False, False, False, False],
[False, True, False, False, False, False, False]], dtype=bool)
一切正常,但不是第四行。我可以知道为什么吗?有什么解决方法吗?
【问题讨论】:
-
使用
np.isclose。 -
@Divakar 我不知道为什么 np.isclose 仍然没有成功。它只在我的电脑里吗?
-
展示你是如何使用它的以及结果?
-
@Divakar 更新
-
就像在pandas中使用
eq一样,如果不指出轴会收到错误的结果new_df.eq(new_df[new_df != 0].min(),0)
标签: python-3.x pandas numpy equals-operator