替换 Xarray.DataArray 中的唯一值
Replace a unique value in a Xarray.DataArray
我想替换 Xarray.DataArray
的唯一值,但我尝试过的每个代码都不起作用。这很容易:
np.min(cape2) = 0.0001
所以,我想将这个结果替换为 0,即 np.min(cape2) = 0。
我尝试使用 cape2.where(cape2 > 0.0002, 0)
和 cape2.where(cape2 != 0.0002, 0)
,但没有成功。
谢谢。
您不能以那种方式替换值。如果要替换数组的值,则必须使用适当的索引来替换该值。比方说,我们有一个唯一值数组。我们称它为 "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]
希望,这能帮助您解决问题。
可以这样做
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]
我想替换 Xarray.DataArray
的唯一值,但我尝试过的每个代码都不起作用。这很容易:
np.min(cape2) = 0.0001
所以,我想将这个结果替换为 0,即 np.min(cape2) = 0。
我尝试使用 cape2.where(cape2 > 0.0002, 0)
和 cape2.where(cape2 != 0.0002, 0)
,但没有成功。
谢谢。
您不能以那种方式替换值。如果要替换数组的值,则必须使用适当的索引来替换该值。比方说,我们有一个唯一值数组。我们称它为 "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]
希望,这能帮助您解决问题。
可以这样做
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]