为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的数据没有被屏蔽?

为什么我的数据没有被屏蔽?

烙印99 2021-03-29 13:15:48
data = [[0, 1, 1, 5, 5, 5, 0, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6],        [1, 1, 1, 0, 5, 5, 5, 0, 2, 2, 0, 0, 2, 0, 0, 6, 6, 6, 0, 0, 6, 6],        [1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 6, 0, 0, 6, 6]]我拥有的数据对象是 <class 'numpy.ndarray'>知道数据是一个numpy对象,我做了以下工作:data = np.array(data)我想将输入中的列表中的数字设置为0,这是我尝试过的:data[~np.isin(data,[2,4])] = 0我期望在前一个矩阵中所有2和4出现都是0,其余的保持它们的值,我得到了什么:TypeError:仅整数标量数组可以转换为标量索引还尝试使用np.array给定错误将数据作为numpy数组给出。
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

np.isin如果打算将那些匹配值设置为0,则不应忽略该掩码。下面的代码可以正常工作:


另外,您应该使data一个numpy数组,而不是列表列表。


In [10]: data = np.array([[0, 1, 1, 5, 5, 5, 0, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6],

    ...:         [1, 1, 1, 0, 5, 5, 5, 0, 2, 2, 0, 0, 2, 0, 0, 6, 6, 6, 0, 0, 6, 6],

    ...:         [1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 6, 0, 0, 6, 6]])

    ...:         


In [11]: data[np.isin(data, [2, 4])] = 0


In [12]: data

Out[12]: 

array([[0, 1, 1, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6],

       [1, 1, 1, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 0, 6, 6],

       [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 6, 6]])

只是为了重现您的错误:


In [13]: data = [[0, 1, 1, 5, 5, 5, 0, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6],

    ...:         [1, 1, 1, 0, 5, 5, 5, 0, 2, 2, 0, 0, 2, 0, 0, 6, 6, 6, 0, 0, 6, 6],

    ...:         [1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 6, 0, 0, 6, 6]]

    ...:         


In [14]: data[np.isin(data, [2, 4])] = 0

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-14-06ee1662f1f2> in <module>()

----> 1 data[np.isin(data, [2, 4])] = 0


TypeError: only integer scalar arrays can be converted to a scalar index


查看完整回答
反对 回复 2021-04-09
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号