
【python篇】在jupyter notebook中使用numpy
小端字节序(Little-endian):最低有效位(LSB)位于最低地址(较小的字节地址),最高有效位(MSB)位于较高的字节地址。1、数组:可以通过索引去获得元素,可以切片,可以迭代打印所有数据,与python中列表不同的是数组里的数据类型需要统一,而列表里的数据类型不需要统一,其效率高。返回选取元素的一维数组。索引掩码是用索引的长度生成一个新的数组,数组中的元素采用索引列表中的数字在原列表中
一、juoyter notebook的打开与关闭
下载好jupyter notebook后,在终端输入cmd进入黑窗口,默认浏览器会打开jupyter notebook,新建好文件,就可以开始学习了
想要关闭在终端窗口里按ctrl c 并按y
二、Markdown相关用法
1、# 我是最大标题 (前面加的#越多,标题越小)
2、**粗体字** *斜体字* ~删除~
3、换行,可在第一行文字后面加上两个空格或者多打一次换行
4、引用链接[想呈现的文字](网页链接),若有图片可在最前方加一个!
5、引用诗句 >蒹葭苍苍 (引用块)
6、引用代码,使用import math
#'''python(加上语言可以显示语法高亮)
import math
print("hello world!")
print(math.pi)
#'''
三、LaTex使用公式
打印公式:$公式$ 独占一行:$$公式$$
四、Numpy的使用方法
全称为Numerical python
1、数组:可以通过索引去获得元素,可以切片,可以迭代打印所有数据,与python中列表不同的是数组里的数据类型需要统一,而列表里的数据类型不需要统一,其效率高
左面有几个[,就会被转换成几维数组
2、数组对象的一些属性
其他创建数组的方法
numpy的其他使用
#sorted函数会产生一个新的数组,不会改变原始list1
list = [5, 17, 3, 26, 31]
sorted_list = sorted(list)
print(sorted_list)
#打印结果为[3, 5, 17, 26, 31]
#sort方法什么都不返回,但原始列表会被排序好
list = [5, 17, 3, 26, 31]
list.sort()
print(list)
#打印结果为[3, 5, 17, 26, 31]
可以利用索引值获得元素,正数或倒数都可以
可以利用切片获得部分数组 arr[1:4] 末尾值元素不获取
与(&)或(|)非(~)
数组对象的建立
数组的数据类型
转换数组元素的类型
区别size shape len
自定义复合类型
设置dtype的方式
Numpy的内部基本数据类型
类型名 | 类型表示符 | 类型代码 |
布尔型 | bool_ | ? |
有符号整数型 | int8(-128~127)/int16/int32/int64 | i1/i2/i4/i8 |
无符号整数型 | uint8(0~255)/uint16/uint32/uint64 | u1/u2/u4/u8 |
浮点型 | float16/float32/float64 | f2/f4/f8 |
复数型 | complex64/complex128 | C8/c16/c32 |
字节串型 | bytes_(兼容:Python字节) | S# |
字符串型 | str_(兼容:Python unicode)4字节 | ‘U#’ |
Numpy的日期时间类型
类型名:日期时间
类型表示符:np.datetime64
类型代码:M8[Y] M8[M] M8[D] M8[h] M8[m] M8[s]
复数类型的矩阵
类型字符码格式
3i4 | 一维数组,3个元素,每个元素都是整型,每个整型元素占四个字节 |
<(2,3)u8 | 6个元素2行3列的二维数组,每个元素都是无符号整型,每个无符号整型元素占8个字节。 |
U7 | 包含7个字符的Unicode字符串,每个字符占4个字节 |
字节序 :在多字节数据类型中定义了字节的存储和表示顺序。它主要用于处理跨平台和跨处理器架构的数据规范和兼容性。当通过网络在不同计算机上通信或将数据保存到文件以便在多个操作系统上使用时,字节序会变得非常重要。
在计算机系统中,字节序主要有两种:大端字节序 (Big-endian) 和小端字节序 (Little-endian)。
大端字节序(Big-endian):最高有效位(MSB)位于最低地址(较小的字节地址),最低有效位(LSB)位于较高的字节地址。它符合人类习惯的阅读顺序,即从左到右。
小端字节序(Little-endian):最低有效位(LSB)位于最低地址(较小的字节地址),最高有效位(MSB)位于较高的字节地址。这是一种与大端相反的表示方法。
在 NumPy 中,可以在创建数组时显式设置字节序。例如,像
>f4
、<i4
这样的描述符允许为浮点数和整数类型分别设置大端或小端字节序。这有助于确保在跨平台操作中正确地处理和存储数据。
数组对象的维度操作
视图变维
复制变维
ravel()
返回的视图与原始数组共享底层数据
直接变维:直接改变原数组对象的维度
数组元素的索引下标
数组切片操作
多维数组切片操作
数组乘法运算
数组有两种乘法运算: 数组乘积运算和矩阵点乘
数组乘积运算 C = A × B
矩阵点乘运算 C = A ⋅ B
矩阵点乘
c[0, 0] = a[0, 0] * b[0, 0] + a[0, 1] * b[1, 0] + a[0, 2] * b[2, 0] = 1*10 + 2*30 + 3*50 = 220
c[0, 1] = a[0, 0] * b[0, 1] + a[0, 1] * b[1, 1] + a[0, 2] * b[2, 1] = 1*20 + 2*40 + 3*60 = 280
c[1, 0] = a[1, 0] * b[0, 0] + a[1, 1] * b[1, 0] + a[1, 2] * b[2, 0] = 4*10 + 5*30 + 6*50 = 490
c[1, 1] = a[1, 0] * b[0, 1] + a[1, 1] * b[1, 1] + a[1, 2] * b[2, 1] = 4*20 + 5*40 + 6*60 = 640
算术运算
直接进行运算即可
# 算术运算符
+ - * / // % **(幂) @ (矩阵乘法)
# 复合赋值算术运算
+= -= *= /= //= %= **=
比较运算 < <= > >= == !=
布尔掩码操作
布尔掩码是用索引数组中对应位置的布尔值来挑选原数组中的元素,对应位置为True 的选取,为False 时则丢弃;返回选取元素的一维数组。
索引掩码操作
索引掩码是用索引的长度生成一个新的数组,数组中的元素采用索引列表中的数字在原列表中取数据再放入索引中对应的位置。
多维数组的拆分和合并
二维数组的合并
二维数组的拆分
axis的取值
# 通过axis作为关键字参数指定组合的方向,取值如下:
# 二维数组:
# 0: 垂直方向(行)
# 1: 水平方向(列)
# 三维数组:
# 0: 深度方向(页)
# 1: 垂直方向(行)
# 2: 水平方向(列)
拆分合并通用函数
三维数组的操作
三维数组的合并
三维数组的拆分
长度不等的数组结合
numpy.pad(array, # 原数组
pad_width=(前填充数, 后填充数),
mode='constant', constant_values=填充值)
#前填充数就是在数组的前面需要填充的数字数量,后填充数就是在数组后面
简单的一维数组组合
数组的一些属性
五、numpy的文件操作
numpy提供了函数用于加载逻辑上可被解释为二维数组的文本文件,格式如下:
数据项1 <分隔符> 数据项2 <分隔符> ... <分隔符> 数据项n
例如:
AA,AA,AA,AA,AA
BB,BB,BB,BB,BB
...
或:
AA:AA:AA:AA:AA
BB:BB:BB:BB:BB
...
调用numpy.loadtxt()函数可以直接读取该文件并且获取ndarray数组对象
numpy提供了loadtxt()函数用于解析文本为ndarray
函数调用格式
numpy.loadtxt(
fname, # 文件路径
dtype=float, # 指定返回每一列数组中元素的类型,默认为float
delimiter=None, # 分隔符(缺省值为空格)
converters=None # 转换器函数字典{1: func1, 2:func2}
skiprows=0, # 跳过行数,默认0,不跳过
usecols=None, # 列序列(1, 3)读取1、3两列
unpack=False, # 是否按列拆包,分别赋给对应的变量,是否单独拆分变量返回
encoding=None, # 编码.
...
)
# 返回 NDArray
例如
import numpy as np
data = np.loadtxt("CustomerSurvival.csv",
skiprows=1,
delimiter=',')
print(data)
保存为文本文件
numpy提供了savetxt()函数用于将NDArray转为文本文件
函数调用格式
numpy.to_savetxtcsv(
fname=None, #文件路径
X, #NDarray数组
fmt='%.18e', #浮点数的默认输出格式,默认‘%.18e'
delimiter=' ', #分隔符,默认使用空格分隔(’ ')
newline='\n', #换行符,默认:’\n’
encoding=None #编码
...
)
示例
import numpy as np
data = np.arange(1, 10).reshape(3, 3)
print(data)
np.savetxt('temp.txt', data, '%d')
努力学习机器学习中,遇到新的属性会随时更新,接下来学习pandas~
更多推荐
所有评论(0)