对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]]
这种用法,不仅比单纯通过复合的循环遍历实现的代码更加简洁,而且在执行效率上有着很大的优势。很多时候,计算的向量化就是为了能够加速整个程序的执行速度。
以上这篇对numpy中的where方法嵌套使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
python使用ctypes调用第三方库时出现undefined symbol错误详解
python中时间的库有time和datetime,pandas也有提供相应的时间处理函数,下面这篇文章主要给大家介绍了关于python使用ctypes调用第三方库时出现undefined symbol错误的相关资料,需要的朋友可以参考下2023-02-02python一招完美搞定Chromedriver的自动更新问题
这篇文章主要介绍了python一招完美搞定Chromedriver的自动更新,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-09-09python中用logging实现日志滚动和过期日志删除功能
这篇文章主要介绍了python中用logging实现日志滚动和过期日志删除功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-08-08
最新评论