在Python中从数组中提取正值和负值
我有一个名为在Python中从数组中提取正值和负值,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,我有一个名为A的数组: A = np.array([[-1, 2, -3], [4, -5, 6], [-7, 8, -9]]) 现在,我想提取正负部分,并将它们保存在两个新数组中,如: B = np.array([[0, 2, 0], [4, 0, 6], [0, 8, 0]]) 积极的部分和 C = np.array([[-1, 0, -3], [0
A
的数组:
A = np.array([[-1, 2, -3],
[4, -5, 6],
[-7, 8, -9]])
现在,我想提取正负部分,并将它们保存在两个新数组中,如:
B = np.array([[0, 2, 0],
[4, 0, 6],
[0, 8, 0]])
积极的部分和
C = np.array([[-1, 0, -3],
[0, -5, 0],
[-7, 0, -9]])
对于负片部分
请您指导我如何从Python 3.6中的数组A
获取数组B
和C
使用两个s替换零以下和零以上的值:
>>> import numpy as np
>>> A = np.array([[-1, 2, -3], [4, -5, 6], [-7, 8, -9]])
>>> B = np.where(A > 0, A, 0)
>>> C = np.where(A < 0, A, 0)
>>> B
array([[0, 2, 0],
[4, 0, 6],
[0, 8, 0]])
>>> C
array([[-1, 0, -3],
[ 0, -5, 0],
[-7, 0, -9]])
然后np。其中
将创建一个新数组,如果第一个参数(a>0
)中的元素是True
并从第三个参数0
中获取元素,以防它是False
可能的重复
>>> Ag0_bc, B_bc, zero_bc = np.broadcast_arrays(A > 0, A, 0)
>>> Ag0_bc
array([[False, True, False],
[ True, False, True],
[False, True, False]], dtype=bool)
>>> zero_bc
array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])