Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)

前言:本文是学习网易微专业的《python全栈工程师》 中的《数据分析 - 机器学习工程师》专题的课程笔记,欢迎学习交流。
一、课程目标
  • 掌握数组间的运算
  • 掌握数组的通用函数
二、详情解读 2.1.运算和通过函数 2.1.1.算术运算 1.数组与标量间的运算:数组里元素的运算
import numpy asnp a = np.arange(0, 10).reshape(2, 5) a*3 a+3 a-3 a/3

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

2.数组间的运算:两个数组必须形状一样
b = a + 10 a.shape, b.shape a + b a - b a / b

【Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)】运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

3.通过广播机制的运算:数组形状可以不同,但必须有一个轴的元素个数相同
m = np.arange(5) a + m

Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

n = np.arange(1, 3).reshape(-1, 1) a + n a + np.array([1])

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

2.1.2.通过函数 1.内置函数:
一元函数:
函数 说明
np.sin,np.cos,np.tan 三角函数
np.arcsin,np.arccos,np.arctan 反三角函数
np.sinh,np.cosh,np.tanh 双曲三角函数
np.arcsinh,np.arccosh,np.arctanh 反双曲三角函数
np.sqrt 求平方根
np.exp 计算自然指数
np.log,np.log2,np.log10 计算对数(依次是以e、2、10为底)
示例:
alpha = np.linspace(-1, 1, 11) y = np.sin(np.pi * alpha) np.round(y, decimals=3)

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

二元函数:
函数 说明
np.add,np.subtract,np.multiply,np.divide 算数运算函数
np.equal,np.not_equal,np.less,np.less_equal,np.greater,np.greater_equal 比较运算函数
np.power 指数运算
np.remainder 得到余数
np.reciprocal 返回倒数(不要使用整数型)
np.real,np.imag,np.conj 复数的实部、虚部和完整的复数
np.sign、np.abs 得到对象符号和绝对值
np.floor、np.ceil、np.rint 效果都是取整
np.round 四舍五入
示例一:
np.add(np.power(np.sin(alpa), 2), np.power(np.cos(alpha), 2))

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

示例二:
a = np.arange(10.0, 100.0, 2) b = np.logspace(2, 4, a.shape[0]) m = np.empty_like(a) np.remainder(b, a, out=m)# 将运算结果,即余数保存到m中

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

2.1.3.自定义通过函数 python里自定义函数是如下这样的:
# 自定义bmi函数 def bmi(height, weight): bmi_index = weight / height ** 2 if bmi_index > 18 and bmi_index < 25: return 0 elif bmi_index <= 18: return -1 else: return 1 bmi(1.55, 45)# 调用函数

使用numpy来自定义通过函数是如下这样的:
# 创建身高数组 h = (2.2 - 1.4) * np.random.random_sample((10, )) + 1.4 h = np.round(h, 2)

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

# 体重的数组 w = (96 - 30) * np.random.random_sample((10, )) + 30 w = np.round(w, 2)

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

python中自定义的函数,不能直接拿来在numpy中调用,下面的调用会报错:
bmi(h, w)

运行结果;
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

正确的使用方法是下面这样的:
# 这里的2表示有两个参数,1表示有一个返回值 bmi_ufunc = np.frompyfunc(bmi, 2, 1) bmi_ufunc(h, w)

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

创建通过函数的另一个方法:
bmi_ufunc2 = np.vecotrize(bmi, otypes=[np.float]) bmi_ufunc2(h, w)

运行结果:
Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)
文章图片

注意:在进行数据分析时,最好不要用for循环语句,因为数据量一般较大,容易内存溢出。
三、课程小结
  • 01 运算
  • 02 通用函数

    推荐阅读