加减乘除
在 Numpy 中进行加减乘除可比 List 有效率多了,Numpy 可以让在 Array 中的每一个元素都快速计算,甚至有时候还可以帮你自动并行运算。 比如你要为一个列表中的每个元素都加上一个值,比如收集了一批学生的身高,一年后,大家都长高了 3cm。
#### listl = [150, 166, 183, 170]for i in range(len(l)):l[i] += 3print(l)[153, 169, 186, 173]##### numpyimport numpy as npa = np.array([150, 166, 183, 170])print(a + 3)[153 169 186 173]#######批量 +-*/ 全元素计算#print("a + 3:", a + 3)print("a - 3:", a - 3)print("a * 3:", a * 3)print("a / 3:", a / 3)a + 3: [153 169 186 173]a - 3: [147 163 180 167]a * 3: [450 498 549 510]a / 3: [50. 55.33333333 61. 56.66666667]
矩阵点积运算 dot()
a = np.array([[1, 2],[3, 4]])b = np.array([[5, 6],[7, 8]])print(a.dot(b))[[19 22] [43 50]]print(np.dot(a, b))[[19 22] [43 50]]
从上面可以看出,你有两种写法。1)直接用一个矩阵 dot 另一个;2)用 np.dot(a, b) 把两个矩阵包起来。
数据统计分析
用 Numpy 做数据分析理所应当,但是如果数据的种类多样的话,推荐用 Pandas 来做分析的. 不过,在数据量比较大的时候,我更喜欢直接 Numpy 来搞,因为 Numpy 的速度还是要比 Pandas 快上不少。
那么什么是数据分析呢?其实也就是在数据中找到你想要的一些变量,总结数据的规律。最简单的当属找到最大值最小值了。 比如上面的身高数据,你想找全班最高和最矮的。
a = np.array([150, 166, 183, 170])print("最大:", np.max(a))print("最小:", a.min())最大: 183最小: 150print("总共:", a.sum())总共: 669print("累乘:", a.prod())print("总数:", a.size)累乘: 774639000总数: 4print("平均身高:", np.mean(a))print("身高中位数:", np.median(a))平均身高: 167.25身高中位数: 168.0print("标准差:", np.std(a))标准差: 11.776565713313877
特殊运算符号
# 天花板的值 地板的值a = np.array([150.1, 166.4, 183.7, 170.8])print("ceil:", np.ceil(a)) #取天花板的值print("floor:", np.floor(a)) #还是地板的值ceil: [151. 167. 184. 171.]floor: [150. 166. 183. 170.]## 上限下限a = np.array([150.1, 166.4, 183.7, 170.8])print("clip:", a.clip(160, 180))clip: [160. 166.4 180. 170.8]

