Numpy入门⭐️
- 废了吗
数据的维度😂
一维数据:列表 数组 集合
⭐️列表和数组
- 列表的数据可以是不同的类型
- 数组要求数据类型相同
二维和多维数据
高维数据
- 有键值对组织起来的数据
python常见数据表示
-
一维数据
[1,4,6]#有序 {1,3,5}#无序
-
二维和多维度
[[1,2,3], [4,5,6]]
NumPy的数组表示
NumPy库—数据科学计算
引用:import numpy as np
数组的优势
- 减少运算循环,加快计算速度
- 使用相同数据类型,节省内存
数组对象 :ndarray
组成:
- 实际数据
- 描述这些数据的元数据(数据的维度,类型)
特点:
- 数据同类型
- 下标从0开始
ndarray对象的属性 | 描述 |
---|---|
.ndim | 秩,轴的数量或者维度的数量 |
.shap | 数组对象的尺度,m行n列 |
.size | 数组元素个数,m*n |
.dtype | 元素类型 |
.itemsize | 每个元素的大小,以字节为单位 |
使用ndarray数组时需要保证数据类型一致,保证每一个维度数据数量相同
ndarray数组的创建和变换😳
ndarray数组的创建方法:
从python的列表元组类型创建
x=np.array(list/tuple)
x=np.array(list/tuple,dtype=np.float32)
使用NumPy中函数创建数组(元素默认为整数其他默认为浮点数)
函数 说明 np,arange(n)
类似range(),元素从0到n-1 np.ones(shape)
生成全1数组,shape是元组类型 np.zeros(shape)
生成全0数组,shape是元组类型 np.full(shap,val)
生成每个元素都是val的的数组 np.eye(n)
生成n*n的单位矩阵,对角线1,其余元素为0 np.ones_like(a)
根据数组a的形状生成一个全1数组 np.zeros_like(a)
根据数组a的形状生成一个全0数组 np.full_like(a,val)
根据数组a的形状生成一个全val数组 np.linspace(a,b,num,endpoint=False)
从a到b等间距生成num个元素的1维数组,默认b包括在数组内 np.concatenate()
将两个或者多个数组合并为一个新数组
ndarray数组维度变换方法 描述 .reshape(shape)
不改变数组元素,返回一个shape1形状的数组,原数组不变 .resize(shape)
和reshape(shape)一样,但修改原数组 .swapaxes(ax1,ax2)
将数组n个维度中的两个维度调换 .flatten()
对数字降维,返回折叠后的一维数组,原数组不变
ndarray数组的类型变换 描述 new_a=a.astype(new_type)
astype方法会创建一个新数组(可以用来拷贝一个素组) 例
new_a=a.astype(np.float)
ndarray数组转换为列表 描述 .tolist()
转换为python列表类型 从字节流(raw bytes)中创建
从文件中读特定格式创建
ndarray数组的索引和切片😉
-
数组的索引和切片
a. 一维数组的索引和切片
a=np.array([1,2,3,4,5]) a[0] a[1:4:2]#表示提取下标1到4(不包括4)步长为2的元素
b. 多维数组的索引和切片
a=np.arange(24).reshape((2,3,4)) a[1,2,3] a[-1,-2,-3] a[:,1,-3] a[:,1:3,:]#表示第一个和第三个维度所有的,并且第二个维度下标1到3(不包括3)的切片 a[:,:,::2]#表示在第三个维度上以步长为2的切片
ndarray数组的运算
-
NumPy一元函数(对数组内的所有元素进行运算)
函数 说明 np.abs(x)或者np.fabs(x) 取绝对值 np.sqrt(x) 取平方根 np.square(x) 平方 np.log(x) np.log10(x) np.log2(x) 求对数 np.ceil(x) np.floor(x) 求该数附近的两个整数 np.rint(x) 四舍五入 np.modf(x) 小数和整数部分分开为两个独立数组返回 np.cos(x) np.sin(x) np.tan(x) np.cosh(x) np.sinh(x) np.tanh(x) 三角函数 np.exp(x) 指数 np.sign(x) 计算元素的符号,返回1,0,-1 -
NumPy二元函数(两个数组之间的运算)
函数 说明 + - * / 加减乘除 np.maximum(x,y) np.minimum(x,y) 元素级最大最小值 np.mod(x,y) 元素级模运算 np.copysign(x,y) 将y的符号赋值给x > = < <= == != 算数比较