对numpy中的where方法嵌套使用详解
如同for循环一样,numpy中的where方法可以实现嵌套功能。这是简化嵌套式矩阵逻辑的一个很好的方法。
假设有一个矩阵,需要把小于0的元素改成-1,大于0的元素改成1,而等于0的时候不做修改。
那么,对应的代码示范如下:
#!/usr/bin/python importnumpyasnp 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 datavalue: [[-2.062624290.94548656-0.294585620.82657-1.08587439] [-0.674161610.772471910.603306030.73694198-0.63761278] [0.24887356-0.270860270.343123630.7273030.72741593] [-0.48973095-0.33185631-1.233416950.135692672.06881178]] data1value: [[-11-11-1] [-1111-1] [1-1111] [-1-1-111]]
这种用法,不仅比单纯通过复合的循环遍历实现的代码更加简洁,而且在执行效率上有着很大的优势。很多时候,计算的向量化就是为了能够加速整个程序的执行速度。
以上这篇对numpy中的where方法嵌套使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。