【发布时间】:2021-04-21 16:22:57
【问题描述】:
我正在学习 numpy...
我有一个像这样的二维数组:
myArray = np.array([['0','1'], ['0','1'], ['1','0'], ['1','0']])
我还得到了一个 columnIndex(例如:1)
所以我需要提取列并且对于每个元素,如果是“0”则返回“a”,如果是“1”则返回“b”。
myArray[:, columnIndex]
> ['1' '1' '0' '0']
然后
f = lambda x: 'a' if x is '0' else 'b'
f(selected)
> ['1' '1' '0' '0']
但我期待
> ['b', 'b', 'a', 'a']
我最初尝试f = lambda x: 'a' if x == '0' else 'b'并得到了
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
为什么会这样?如何干净地提取和转换 2d numpy 数组中的列?
【问题讨论】:
-
你为什么期望一个二维数组?你的预期结果
['b', 'b', 'a', 'a']是 1d。