《数学要素: 从加减乘除到机器学习》第一章笔记

本文是《数学要素:从加减乘除到机器学习》第一章的学习笔记,涵盖Python基础知识如运算符、数据类型,以及数学概念如数字分类、加减运算和向量矩阵的介绍。讲解了Python中的算术运算符、比较运算符、布尔值、字符串、逻辑运算符、列表、元组、字典、range()和zip()函数,还涉及到数字分类、加法和减法运算、向量及矩阵的概念和操作,包括numpy库的使用。
摘要由CSDN通过智能技术生成

看了b站生姜DrGinger大佬的数学要素系列视频(https://space.bilibili.com/513194466),惊为天人,决定开始拜读,以下是第一章学习笔记。

第一章 万物皆数 | (数学要素) | 从加减乘除到机器学习

学习之前需要掌握的一些python基础 | 运算符、数据类型和常用函数

python3中的算术运算符


+ # 加号

- # 减号

* # 乘号

/ # 除号,python2中结果弃余数取整,python3中结果为浮点数。

% # 除法取余数

x = 3 # 程序自动寻找一块内存空间,将内存空间命名为x,并在x这个内存空间内存储一个值:3

x # 输入赋值后的变量名,变量的值会显示在控制台或者终端
x = 3
x
3
a = 3 
b = 4
a + b #Python可以直接计算加法
7
a = 3 
b = 4
a - b #减法
-1
a = 3 
b = 4
a * b #乘法
12
a = 3 
b = 4
a / b #除法(python3)
0.75

上面这个计算的结果是浮点数,在python中我们可以利用type()检验变量的类型,int就是整型,float就是浮点型

x = 3.5
type(x)
float
x = 4
type(x)
int
a = 3 
b = 4
a % b #取余
3

一个小问题

x = 3 
y = 4
x
y # 在多个行输入变量名,程序只会展示你输入的最后一个变量的值
4
# 为了解决上述问题,我们使用print()函数
x = 3 
y = 4
print(x)
print(y)
3
4

布尔值和比较运算符

  无论是在数学计算还是编程,我们经常需要判断数与数之间的大小关系,为此要用到比较运算符和一种特殊的变量类型:bool变量。

  • > > > 大于

  • < < < 小于

  • > = >= >= 大于等于

  • < = <= <= 小于等于

  • = = == == 等于

  • 条件为真(布尔值):True

  • 条件为假(布尔值):False

a = 5 
b = 6
a > b
False
a = 5
b = 6
type(a > b)
bool

字符串

以上,已经接触过python中的三种数据类型:整型变量int,浮点型变量float和布尔型变量bool

下面我们简单介绍一下字符串类型str

x = "I‘m learning Python."
y = 'Great language.'
x,y
('I‘m learning Python.', 'Great language.')
x = "I‘m learning Python."
y = 'Great language.'
a = type(x)
b = type(y)
print(a,b)
print(x,y)
print(x + y)
<class 'str'> <class 'str'>
I‘m learning Python. Great language.
I‘m learning Python.Great language.

逻辑运算符

  • and 且
  • or 或
  • not 非
  • is 是

列表

# 列表
list = [1 , 2, 3, 4]
print(type(list))
print(list)
print(list[3])
<class 'list'>
[1, 2, 3, 4]
4
# append可以添加元素,该元素可以也是列表
list.append(5)
print(list)
list.append([3,6,7])
print(list)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, [3, 6, 7]]
# extend可以用来添加一个元素
list.extend('f')
print(list)
# extend也可以通过列表形式添加多个元素
list.extend([3,4,3])
print(list)
[1, 2, 3, 4, 5, [3, 6, 7], 'f']
[1, 2, 3, 4, 5, [3, 6, 7], 'f', 3, 4, 3]
# print(list[a:b]),打印列表中的第a+1到第b+1个元素
print(list[3:7])
[4, 5, [3, 6, 7], 'f']
list = [0,3,5,9,7]
print(list)
# list.sort(),对列表数据进行从小到大的排序
list.sort()
print(list)
# list.sort(reverse =True),让列表中的数字从大到小排列
list.sort(reverse=True)
print(list)
del list # 清除变量
[0, 3, 5, 9, 7]
[0, 3, 5, 7, 9]
[9, 7, 5, 3, 0]

元祖:不支持修改的元素

y = (4,6,5)
y[1] = 4
y

执行后,会提示如下错误:

TypeError                  Traceback (most recent call last)  
~/name.py in <module>                                                         
      1 y = (4,6,5)  
----> 2 y[1] = 4  
      3 y  
TypeError:'tuple' object does not support item assignment

也就是说,元组类型的元素(tuple)不支持重新赋值。

字典:具有映射关系的数据结构

wages = {
   'steve':1000,'red':120,'white':230}
print(wages['steve'])

RGB = {
   'red':(255,0,0),'green':(0,255,0),'blue':(0,0,255)}
print(RGB['red'])

# 字典增加元素

RGB['black']=(255,255,255)
RGB['white']=(0,0,0)

print(RGB['black'])

# 删除字典元素

del RGB['black']

# 获取某元素的值,没有则返回空值None

print(RGB.get('black'))
1000
(255, 0, 0)
(255, 255, 255)
None

range()函数的使用

# range函数所有参数均为整数,结果返回一个range类型的整数等差序列,一般用在循环结构中。

# 利用a=list(range())可以创建一个数表a,用来储存range()中的值。可以用三种方法使用range()

# 第一种,range(stop),初始值为0,终止值为stop-1,公差为1,此时,返回序列为{0,1,2,3, … ,stop-1}

a = list(range(20))

print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# 第二种,range(begin,stop),初始值为begin,终止值为stop-1,公差为1,此时,返回序列为{begin,begin+1, … ,stop-1}

a = list(range(0,10))

b = list(range(3,10))

print(a)

print(b)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9]
# 第三种,range(begin,stop,step),初始值为begin,终止值小于stop,公差为step。
# 此时,返回序列为{begin,begin+step,begin+2*step, … ,x},x=begin+n*step,stop-step<=x<stop

a = list(range(1,9,3))

print(a)

b = list(range(8,2,-1))

print(b)

c = list(range(8,2,-2))

print(c)

# 当确定区间【2,8】后,由于2<8,公差取-1后,该序列为空集,显示为[]
d =list(range(2,8,-1))

print(d)
[1, 4, 7]
[8, 7, 6, 5, 4, 3]
[8, 6, 4]
[]

zip()函数的使用

利用zip()函数,我们可以定义一个映射关系
y = f ( x ) y=f(x) y=f(x)

将函数的自变量a取值做成列表: a = [ x 1 , x 2 , … , x n ] \displaystyle a=[x_1,x_2, \dots, x_n] a=[x1,x2,,xn]
将对应的函数值b也做成列表: b = [ y 1 , y 2 , … , y n ] \displaystyle b=[y_1,y_2, \dots,y_n] b=[y1,y2,,yn]
则f=zip(a,b)会返回一组元祖类型数据,其值为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) (x_1,y_1),(x_2,y_2),\dots,(x_n,y_n) (x1,y1),(x2,y2),,(xn,yn)
在python3版本中,使用print(f),会给出f这个映射在内存中的地址,如果想观察f的值,需要使用list()函数做转换
如果给定的x的数与y的数目不相等,多余的数不会出现在映射中。

# a、b中的元素可以是一维的
a = [1,2,3,5,6]
b = [4,5,6,7,8]

f = zip(a,b)
print(f)
print(list(f))
<zip object at 0x7f509473b840>
[(1, 4), (2, 5), (3, 6), (5, 7), (6, 8)]
# a中的元素可以是多维的
a = [(1,4),(2,3),(5,7)]
b = [6,8,9]
f = zip(a,b)
print(f)
print(list(f))
<zip object at 0x7f509473b900>
[((1, 4), 6), ((2, 3), 8), ((5, 7), 9)]
# b中的元素可以是多维的
a = [(1,4),(2,3),(5,7)]
b = [(6,6),(7,9),(8,5)]
f = zip(a,b)
print(f)
print(list(f))
<zip object at 0x7f509473e5c0>
[((1, 4), (6, 6)), ((2, 3), (7, 9)), ((5, 7), (8, 5))]

第1节 数字分类:从自然数到复数

  • 集合

集合 (set) ,简称集,是指某种具有特定性质元素的总体。

  • 自然数和整数

自然数集 (the set of natural numbers) 记作 N \mathbb{N} N
N = { 1 , 2 , 3 , … , n , …   } \mathbb{N}=\{1,2,3,\dots,n,\dots\} N={ 1,2,3,,n,}
整数集 (the set of integer) 记作 Z \mathbb{Z} Z
Z = { 0 , − 1 , + 1 , − 2 , + 2 , − 3 , + 3 , … , − n , + n , …   } \mathbb{Z}=\{0,-1,+1,-2,+2,-3,+3,\dots,-n,+n,\dots\} Z={ 0,1,+1,2,+2,3,+3,,n,+n,}

  • 有理数与实数

有理数集 (the set of rational numbers) 记作 Q \mathbb{Q} Q
有理数 (rational numbers) 都可以表示成 q = a b ( ( a ∈ Z ) ∧ ( b ∈ Z / 0 ) ) \displaystyle q=\frac{a}{b}((a\in \mathbb{Z}) \wedge (b\in\mathbb{Z}/0)) q=ba((aZ)(bZ/0))的形式。
给定单位长度,通过几何方法可以作出任意有理数长度的线段,也就是说,有理数是可以准确测量的,因此有理数又称可公度数,可以被写成无限循环小数的形式。
与之对应,不能准确测量的数,叫做不可公度数,即无理数 (irrational numbers) 无理数都是无限不循环小数。
有理数集和无理数集,组成实数集 (the set of real numbers) 记作 R \mathbb{R} R

  • 复数

复数 (complex numbers) 包括实数 (real numbers) 和虚数 (imaginary numbers) ,复数集 (the set of complex numbers) 的记号为 C \mathbb{C} C
复数的具体形式如下:
a + b i a+bi a+bi
a a a b b b是实数, i i i是虚数单位 (imaginary unit)
i 2 = − 1 i^2 = -1 i2=1

python3 math库中的特殊常量

m a t h 是 P y t h o n 的 库 math是Python的库 mathPython

欧拉常数,即自然常数<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值