【问题标题】:How to return new array with deleted values python如何返回具有已删除值的新数组python
【发布时间】:2021-07-07 12:12:07
【问题描述】:

我尝试从第一个数组中获取没有 2 的新数组,当然可以通过多种方式获得,但我正在寻找更少的编码和更智能的解决方案,以这个数组为例..:

somearray = np.array( [4, 5, 2, 8, 4, 7, 2, 64, 2, 57, 2, 45, 7, 43, 2, 5, 7, 3, 3, 6523, 3, 4, 3, 0, -65, -343])
#so create array for deleted 2's for the new array only, the first one will not be affected.
newarray = ??

请不要回答我“np.ma.masked_array(vec, vec == 2)”,它会用-- 替换 2 而不会删除它们..

【问题讨论】:

    标签: python arrays python-3.x numpy


    【解决方案1】:

    使用正则表达式找到所有相等的值 2 并忽略。

     import re
    
     original_array = np.array( [4, 5, 2, 8, 4, 7, 2, 64, 2, 57, 2, 45, 7, 43, 2, 5, 7, 3, 3, 6523, 3, 4, 3, 0, -65, -343])
     digit_re = re.compile('[2]{1}')
     [print (x) for x in original_array if not digit_re.search(str(x))]
    

    【讨论】:

      【解决方案2】:

      您可以使用 argwhere() 方法在数组中查找 2 的索引:

      indices=np.argwhere(somearray==2)
      

      现在终于使用delete()方法:

      newarray=np.delete(somearray,indices[1:])
      

      现在,如果您打印 newarray,您将获得所需的输出:

      array([   4,    5,    2,    8,    4,    7,   64,   57,   45,    7,   43,
                5,    7,    3,    3, 6523,    3,    4,    3,    0,  -65, -343])
      

      【讨论】:

      • 好吧,你是对的,作为一个新的 python 开发人员,我猜是重复的问题,无论你得到正确的答案。 +1
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      相关资源
      最近更新 更多