python numpy 数组如何对每个元素进行操作

python filter 如何应用在numpy array中,比如我有一个二维numpy数组,想将数组中小于0的置零大于零的保留原值,但是不想用for循环。

import numpy as  np

a=np.random.randint(-5,5,(4,4))
print(a)
#第一种方式
a=np.maximum(a,0)
print(a)

a=np.random.randint(-5,5,(4,4))
print(a)
#第二种方式
a=(a+np.abs(a))/2
print(a)

a=np.random.randint(-5,5,(4,4))
print(a)
#第三种方式
a[a<0]=0
print(a)

a=np.random.randint(-5,5,(4,4))
print(a)
#第四种方式
a=np.where(a>0,a,0)
print(a)

输出:

第一种方式
[[-3 -2  3 -1]
 [ 2  3  0  1]
 [-1 -1  0  4]
 [ 2 -4  0 -4]]
[[0 0 3 0]
 [2 3 0 1]
 [0 0 0 4]
 [2 0 0 0]]
 #第二种方式
[[-1 -4 -3 -4]
 [ 1  0 -4 -1]
 [ 3  2 -3  2]
 [-2  1 -5 -2]]
[[ 0.  0.  0.  0.]
 [ 1.  0.  0.  0.]
 [ 3.  2.  0.  2.]
 [ 0.  1.  0.  0.]]
第三种方式
[[-1  3  1  2]
 [ 4  0  2 -4]
 [-2 -2  0  3]
 [-5 -3  3 -1]]
[[0 3 1 2]
 [4 0 2 0]
 [0 0 0 3]
 [0 0 3 0]]
#第四种方式
[[-4 -2 -2  1]
 [-4 -4 -3 -5]
 [ 3  3  2  1]
 [-4  3  3  1]]
[[0 0 0 1]
 [0 0 0 0]
 [3 3 2 1]
 [0 3 3 1]]
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝鲸123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值