numpy中的where方法嵌套使用

       如同for循环一样,numpy中的where方法可以实现嵌套功能。这是简化嵌套式矩阵逻辑的一个很好的方法。

       假设有一个矩阵,需要把小于0的元素改成-1,大于0的元素改成1,而等于0的时候不做修改。那么,对应的代码示范如下:

#!/usr/bin/python

 

import numpy as np

 

data  = np.random.randn(4,5)

data1 =np.where(data > 0,1,

                            np.where(data <0,-1,0))

print("datavalue:")

print(data)

print("data1value:")

print(data1)

 

       程序的执行结果如下:

In [3]: %runpython_exp04.py

data value:

[[-2.06262429  0.94548656 -0.29458562  0.82657   -1.08587439]

 [-0.67416161 0.77247191  0.60330603  0.73694198 -0.63761278]

 [ 0.24887356 -0.27086027  0.34312363 0.727303    0.72741593]

 [-0.48973095 -0.33185631 -1.23341695  0.13569267 2.06881178]]

data1 value:

[[-1  1 -1  1-1]

 [-1 1  1  1 -1]

 [ 1 -1 1  1  1]

 [-1 -1 -1 1  1]]

       这种用法,不仅比单纯通过复合的循环遍历实现的代码更加简洁,而且在执行效率上有着很大的优势。很多时候,计算的向量化就是为了能够加速整个程序的执行速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值