在下面的代码中,我可以轻松地减少数组['a','b','a','c','b','b','c','a']
转换为二进制数组 [0 1 0 1 1 1 1 0]
,以便 'a' -> 0
和 'b','c ' -> 1
。如何将其转换为三元数组,以便 'a' -> 0
、'b' -> 1
、'c' -> 2
code>,而不使用 for
和 if-else
?谢谢。
import numpy as np
x = np.array(['a', 'b', 'a', 'c', 'b', 'b', 'c', 'a'])
y = np.where(x=='a', 0, 1)
print(y)
最佳答案
通过这样做:
np.where(x == 'a', 0, (np.where(x == 'b', 1, 2)))
请注意,这会将所有既不是“a”也不是“b”的字符更改为 2。我假设您只有一个包含 a、b 和 c 的数组。
关于python - 重新分配 numpy.array(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63310069/