【问题标题】: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]
希望,这将帮助您解决问题。