Python 基于布尔映射、布尔掩码对特定数组位置的操作
我想让代码基于布尔映射对数组的指定元素执行某些操作 假设我有一个numpy数组 a=np.数组[[-2.5,-3.2],[2.3,5.3],[1.9,-2.8]] 我想对所有的负元素执行某些操作,比如np.ceil,但不对正元素执行 我知道你可以通过以下方法创建布尔掩码Python 基于布尔映射、布尔掩码对特定数组位置的操作,python,arrays,numpy,masked-array,Python,Arrays,Numpy,Masked Array,我想让代码基于布尔映射对数组的指定元素执行某些操作 假设我有一个numpy数组 a=np.数组[[-2.5,-3.2],[2.3,5.3],[1.9,-2.8]] 我想对所有的负元素执行某些操作,比如np.ceil,但不对正元素执行 我知道你可以通过以下方法创建布尔掩码 你可以试试这样的东西。如果数字为负数,这是应用函数np.ceil的一种方法,否则就别管它 result = np.array([ [ np.ceil(num) if num <
你可以试试这样的东西。如果数字为负数,这是应用函数np.ceil的一种方法,否则就别管它
result = np.array([
[
np.ceil(num) if num < 0 else num
for num
in s
]
for s
in a
])
您也可以在这里查看
你可以试试这样的东西。如果数字为负数,这是应用函数np.ceil的一种方法,否则就别管它
result = np.array([
[
np.ceil(num) if num < 0 else num
for num
in s
]
for s
in a
])
您也可以在这里查看
一种简单的方法是:
a[a<0]=np.ceil(a[a<0])
#array([[-2. , -3. ],
# [ 2.3, 5.3],
# [ 1.9, -2. ]])
一种简单的方法是:
a[a<0]=np.ceil(a[a<0])
#array([[-2. , -3. ],
# [ 2.3, 5.3],
# [ 1.9, -2. ]])
a[aa[a非常感谢你的回答!Mask是我一直在寻找的。这依赖于NumPy提供的np.ma.ceil函数。如果它是自定义的用户定义函数呢?有没有办法将函数映射到掩码数组?非常感谢你的回答!Mask是我一直在寻找的。这依赖于由NumPy提供。如果是自定义的用户定义函数呢?有没有办法将函数映射到屏蔽数组?