【发布时间】:2020-05-18 16:19:38
【问题描述】:
我有两个形状为 (3, 4) 的 numpy 数组,其中包含带有随机符号的随机数:
x = np.random.normal(size = (3, 4))
y = np.random.normal(size = (3, 4))
x
'''
array([[-0.58970016, -1.35424573, -0.86332466, -1.15913228],
[-1.78109087, -0.82991292, 0.94672891, 0.85399162],
[ 0.78427527, 0.86797663, -1.33381457, -0.02626438]])
'''
y
'''
array([[ 0.45801392, 0.80853258, -0.69266633, 3.06853073],
[ 1.58880983, -1.26883392, 2.16452527, 0.8143449 ],
[ 1.40739241, 1.00436608, 0.0511364 , 1.00537412]])
'''
我现在想根据 np 数组“x”中数字的符号更改 np 数组“y”中数字的符号。我想出的代码是:
np.where(np.sign(x) != np.sign(y), y, -y)
'''
array([[ 0.45801392, 0.80853258, 0.69266633, 3.06853073],
[ 1.58880983, 1.26883392, -2.16452527, -0.8143449 ],
[-1.40739241, -1.00436608, 0.0511364 , 1.00537412]])
'''
我也试过了:
np.where((np.sign(x) != np.sign(y)) & (np.sign(x) > 0), y, -y)
但是,这显然不能胜任。有什么帮助吗?
谢谢!
【问题讨论】:
标签: arrays numpy python-3.7