Заменить уникальное значение в Xarray.DataArray - PullRequest
0 голосов
/ 30 марта 2020

Я хочу заменить уникальное значение Xarray.DataArray, но каждый код, который я пробовал, не работал. Это очень просто:

np.min(cape2) = 0.0001

Итак, я хочу заменить этот результат на 0, т.е. np.min (cape2) = 0.

Я пробовал с cape2.where(cape2 > 0.0002, 0) и cape2.where(cape2 != 0.0002, 0), но не сработало.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Это можно сделать таким образом

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]
0 голосов
/ 30 марта 2020

Вы не заменяете значение таким способом. Если вы хотите заменить значение массива, вы должны использовать правильное индексирование для замены этого значения. Допустим, у нас есть множество уникальных ценностей. Давайте назовем это «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]

Надеюсь, это поможет вам решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...