Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数

前言:本文是学习网易微专业的《python全栈工程师》 中的《数据分析 - 机器学习工程师》专题的课程笔记,欢迎学习交流。

一、课程目标

  • 掌握数组间的运算
  • 掌握数组的通用函数

二、详情解读

2.1.运算和通过函数
2.1.1.算术运算

1.数组与标量间的运算:数组里元素的运算

import numpy as  np
a = np.arange(0, 10).reshape(2, 5)
a*3
a+3
a-3
a/3

运行结果:
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第1张图片
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第2张图片
2.数组间的运算:两个数组必须形状一样

b = a + 10
a.shape, b.shape
a + b
a - b
a / b

运行结果:
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第3张图片
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第4张图片
在这里插入图片描述
3.通过广播机制的运算:数组形状可以不同,但必须有一个轴的元素个数相同

m = np.arange(5)
a + m

Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第5张图片

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

运行结果:
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第6张图片
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第7张图片

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数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第8张图片
二元函数:

函数 说明
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))

运行结果:
在这里插入图片描述
示例二:

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数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第9张图片

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数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第10张图片

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

运行结果:
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第11张图片
python中自定义的函数,不能直接拿来在numpy中调用,下面的调用会报错:

bmi(h, w)

运行结果;
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第12张图片
正确的使用方法是下面这样的:

# 这里的2表示有两个参数,1表示有一个返回值
bmi_ufunc = np.frompyfunc(bmi, 2, 1)
bmi_ufunc(h, w)

运行结果:
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第13张图片
创建通过函数的另一个方法:

bmi_ufunc2 = np.vecotrize(bmi, otypes=[np.float])
bmi_ufunc2(h, w)

运行结果:
Python数据分析 - 机器学习笔记:第一章数据分析 - 1.2.3.运算和通过函数_第14张图片
注意:在进行数据分析时,最好不要用for循环语句,因为数据量一般较大,容易内存溢出。

三、课程小结

  • 01 运算
  • 02 通用函数

你可能感兴趣的:(Python全栈工程师学习笔记,numpy,数据分析,数组运算,通用函数)