给定一个numpy数组A,如下所示:
[[ 0. 482. 1900. 961. 579. 56.]
[ 0. 530. 1906. 914. 584. 44.]
[ 43. 0. 1932. 948. 556. 51.]
[ 0. 482. 1917. 946. 581. 52.]
[ 0. 520. 1935. 878. 589. 55.]]
我得到了需要过滤的元素,如下所示:
C = array([-1, -1, -1, 1, 2], dtype=int64)
R = array([[-2, -5],
[-1, -5],
[ 0, -4],
[ 1, -3],
[ 2, -2],
[ 3, -1]])
提取方法:A[R.T, C]
问题:负索引给我带来了麻烦。我想为R或C或两者都〈0的条目获得NaN。这可能吗?
1条答案
按热度按时间rggaifut1#
作为练习,我假设R或C数组的形状不正确(因为对于数据
A[R.T, C]
返回形状不匹配错误),所以我选择从R中删除一行:然后
A[R.T, C]
计算为:现在我假设你出于某种原因试图用NaN值替换所有由负索引提供的值,这会导致预期的结果:
这是正确的预期吗?
如果是这样的话,我建议在A中添加一行和一列由NaN个值组成的行和列,并将所有的负索引替换为-1,这样就可以完成这个任务:
A[R.T, C]
现在返回预期的数组: