【问题标题】:Replace a unique value in a Xarray.DataArray替换 Xarray.DataArray 中的唯一值
【发布时间】:2020-03-30 16:57:53
【问题描述】:

我想替换 Xarray.DataArray 的唯一值,但我尝试的每个代码都不起作用。这很容易:

np.min(cape2) = 0.0001

所以,我想将此结果替换为 0,即 np.min(cape2) = 0。

我尝试使用cape2.where(cape2 > 0.0002, 0)cape2.where(cape2 != 0.0002, 0),但没有成功。

谢谢。

【问题讨论】:

    标签: python arrays python-xarray


    【解决方案1】:

    这样就可以了

    import numpy as np
    x=np.array([1,2,3,4,5,1,2,3,7,8])
    print(x)
    x[x==np.min(x)]=0
    print(x)
    
    [1 2 3 4 5 1 2 3 7 8]
    [0 2 3 4 5 0 2 3 7 8]
    

    【讨论】:

      【解决方案2】:

      您不会以这种方式替换值。如果要替换数组的值,则必须使用正确的索引来替换该值。比方说,我们有一个唯一值的数组。让我们称之为“arr”,我们想用不同的值替换最小值,正如你所尝试的,那么我们可以这样做。

      arr = np.array([2, 5, 6, 1, 10]) # our array of unique values
      idx = np.where(arr == np.min(arr)) # get the index of the minimum value;
      
      print(idx) # reutrns (array([3], dtype=int64),)
      # we can access the index as idx[0][0]
      print(idx[0]) # returns [3]
      print(idx[0][0]) # returns 3
      print(arr[idx[0][0]]) # returns 1
      arr[idx[0][0]] = 50 # replace 1 with 50
      print(arr[idx[0][0]]) # returns 50
      print(arr) # returns [2, 5, 6, 50, 10]
      

      希望,这将帮助您解决问题。

      【讨论】:

        猜你喜欢
        • 2014-06-27
        • 1970-01-01
        • 2016-10-27
        • 2018-08-16
        • 1970-01-01
        • 2020-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多