看python数据分析项目发现了一个小技巧
import numpy as np
data_arr = np.random.rand(3,3)
print(data_arr)
year_arr = np.array([[2000, 2001, 2000],
[2005, 2002, 2009],
[2001, 2003, 2010]])
filtered_arr = data_arr[year_arr >= 2010]
print (filtered_arr)
看上面这段代码首先它引入了numpy模块然后创建了一个data_arr的3行3列的维数组对象
这个多维数组的对象与下面year_arr多维数组对象的维度是一致的
下面有一行代码可能会让人感到费解
[year_arr == 2010] 这种对象与常量比较的方法我在java或者C++中都没有见过初看有点懵
其实它是内部帮你做了一个判断,将year_arr中的元素满足 >= 2010的下标在data_arr中对应的值都返回
了回来组成了一个新的numpy.ndarray对象然后这个对象就被赋值给了filtered_arr
下面贴出运行结果大家一看肯定就明白了
[[0.98282246 0.23384097 0.81657954]
[0.11019522 0.92868591 0.37159415]
[0.30358206 0.71143007 0.00779396]]
[0.00779396]
第一个长的括号是原来的data_arr,因为year_arr中满足元素>=2010的下标只有最后一个
所以最后filtered_arr中也只有data_arr中最后一个下标所对应的值</