【发布时间】:2019-07-23 09:22:59
【问题描述】:
我有一些二进制字符串s,比如001010。我想将它转换为 numpy 数组 a 其中 a[i] = np.array([[1], [0]]) 如果 s[i] == '0' 和 np.array([[0], [1]]) 否则。
所以我写了这样的代码:
a = np.empty([len(s), 2, 1])
for i, char in enumerate(s):
if char == '0':
a[i] = np.array([[1], [0]])
elif char == '1':
a[i] = np.array([[0], [1]])
是否可以以更 numpy 的方式将其重写为没有 for 循环的向量化形式?
我的预期输出如下:
array([[[1.],
[0.]],
[[1.],
[0.]],
[[0.],
[1.]],
[[1.],
[0.]],
[[0.],
[1.]],
[[1.],
[0.]]])
【问题讨论】:
标签: python arrays numpy vectorization