numpy csdn,numpy库使用方法
NumPy提供了许多先进的数值编程工具,如矩阵数据类型、向量处理和复杂的操作库。下面这篇文章主要介绍在玩Python库时使用numpy的相关信息,对于数据来说是必须的。有需要的可以参考一下。
00-1010前言1。Ndarray 2简介。Ndarray的基本操作生成数组索引,切片修改数组形状修改数组类型数组删除元素3 1。n array运算逻辑运算统计运算数组运算4。矩阵5简介。Python中矩阵运算的扩展:正态分布简介正态分布图的方差汇总
目录
Numpy库是一个科学计算库。如何使用:import numpy as np
对于快速处理任意维度的数组,存储对象是ndarray;对于矩阵运算,存储对象是matrix.
前言
1. ndarray的属性
item=np.array([[1,2],[3,4],[5,6]])
# ndarray的属性
Print(shape表示数组维数的元组,item.shape) # (3,2)
Print(ndim表示数组维数,item.ndim) # 2
Print(size表示数组中元素的数量,item.size) # 6
Print(itemsize表示元素的字节大小,item.itemsize) # 4
Print(dtype表示数字元素的类型,item.dtype) # int32
2. ndarray的形状
ndarray可以是任何维度的数组。
# ndarray的形状
a1=np.array([1,2])
a2=np.array([[1,2],[3,4]])
a3=np.array([[[1,2],[3,4]],[[5,6],[7,8]])
Print(a1是{0}维度数组。格式(a1.ndim))
Print(a2是{0}维数组)。格式(a2.ndim))
Print(a3是{0}维数组。格式(a3.ndim))
# a1是一维数组
# a2是一个二维数组
# a3是一个三维数组
3. ndarray的类型
创建n array对象时,可以使用dtype参数指定n array的类型。
# n数组的类型
Item=np.array ([[1,2],[3,4]],dtype=np.str _) #将类型设置为string
打印(项目)
#[[1 2]
# [3 4]]
1. ndarray介绍
2. ndarray的基本操作
1. 生成0和1数组
#生成包含0个元素的3行4列的数组。注意:默认类型是浮点类型0。
arr_zero=np.zeros([3,4],dtype=int)
#用元素1生成一个3行4列的数组
arr_one=np.ones_like(arr_zero)
2. 从现有数组生成
数组()
>
a = np.array([[1, 2, 3], [4, 5, 6]])
asarray()
asarray = np.asarray(a)
array()和asarray()的区别
a[0, 0] = 100 # 修改元素值
3. 生成固定范围的数组
linspace(start, stop, num, endpoint) 固定个数,步长相等
# 从0到100,生成11个元素,默认包含stop值100,endpoint=True
arange(start, stop, step, dtype) 固定步长
# 从0到50,固定步长10生成int类型元素,不包括stop值
logspace(start, stop, num) 生成10的N次幂的数据
# 从10^0开始到10^3结束,生成4个元素
4. 生成随机数组 np.random模块
4.1. 均匀分布生成
rand(d0, d1, … , dn) 返回一个[0.0, 1.0)内的一组均匀分布的数据
a1 = np.random.rand(2, 3)
uniform(low, high, size) 从一个均匀分布[low, high)中随机采样,可替代rand()方法 常用
a2 = np.random.uniform(1, 10, (2, 3))
randint(low, high, size) 从一个均匀分布[low, high)中随机采样,生成N维整数数组
a3 = np.random.randint(1, 10, (2, 3))
生成均匀分布数据的小案例
import matplotlib.pyplot as plt
数据分布如图所示:
4.2. 正态分布生成
randn(d0, d1, … , dn) 从标准正态分布中返回一个或多个样本值
a1 = np.random.randn(2, 3)
normal(loc, scale, size) loc均值,scale标准差,默认size=None,返回一个值 常用
a2 = np.random.normal(1.75, 1, (2, 3))
standard_normal(size) 返回指定形状的标准正态分布的数组
a3 = np.random.standard_normal((2, 3))
生成正态分布数据的小案例
# 1.准备数据
数据分布如图所示:
数组索引、切片
直接索引,先对行索引,再对列索引
高维数组索引,从宏观到微观
# 生成一个5行4列的随机数组,范围在40~100
修改数组形状
reshape(shape[,order]) 返回一个新数组,原数组不变,行列顺序不变
# 生成一个4行5列的随机数组,范围在40~100
resize(shape[,order]) 无返回,改变原数组,行列顺序不变
# 将数组修改为5行4列
T返回一个新数组,原数组不变,行列顺序改变
print(score.T)
修改数组类型
astype(dtype)
# 生成一个4行5列的随机数组,范围在[1,5) 类型为浮点型
数组去重
np.unique()
arr = np.array([[1, 2, 3, 4], [3, 4, 5, 6]])
删除元素
np.delete(arr,obj,axis)
arr:ndarray数组
obj:删除元素的位置或者条件
axis:指定删除行或者列
3. ndarray运算
逻辑运算
大于、小于直接进行比较
bool赋值,通过布尔索引进行赋值
arr = np.random.normal(0.75, 1, (3, 4))
通用判断函数
np.all() 所有元素都满足才会返回True
np.any() 任何一个元素满足都会返回True
# 通用判断函数
三元运算符
np.where(表达式, value1, value2) 表达式为True,执行value1, 否则执行value2
复合逻辑需要结合 np.logical_and() 或 np.logical_or() 使用
# 三元运算符
统计运算
min() 最小值
max() 最大值
mean() 均值
std() 标准差
var() 方差
argmin() 最小值的下标
argmax() 最大值的下标
统计时,还可以指定统计轴axis(行或者列),在每个轴上进行统计, axis轴的取值并不固定,在本例中,axis 0表示列,1表示行
arr = np.random.normal(0.75, 1, (3, 4))
数组运算
数组与标量运算
对应元素直接进行运算
arr = np.array([1, 0, 5])
数组与数组运算
数组之间的运算需要满足广播机制才可以运算,两个条件
维度相等
shape(其中相对应的一个地方为1)
条件可以表示为:
可以运算:
arr = np.array([1, 0, 5])
4. matrix 矩阵介绍
矩阵和向量
矩阵(matrix),和数组的区别:矩阵只能是二维的,数组可以是多维的
向量:向量是一种特殊的矩阵,一般都是列向量
加法和常量乘法
矩阵的加法:行列数相等才能相加
矩阵的常量乘法:每个元素都要乘
矩阵间的乘法
两个矩阵相乘,只有第一个矩阵的列数等于第二个矩阵的行数才能相乘,即:(M行,N列) × (N行,L列) = (M行,L列)
矩阵乘法的性质
(1)结合律: (AB)C=A(BC)
(2)分配律:(左分配律)C(A+B)=CA+CB
(右分配律)(A+B)C=AC+BC
(3)对常量的结合性:k(AB)=(kA)B=A(kB)
单位矩阵
从左上角到右下角的对角线均为1,其余元素都为0的矩阵
逆矩阵
矩阵A × 矩阵B = 单位矩阵,则A和B互为逆矩阵
转置矩阵
行和列互换的矩阵
5. Python中矩阵运算
np.matmul() 两个矩阵相乘
np.dot() 两个矩阵相乘或者矩阵与标量相乘
arr1 = np.random.randint(1, 7, (3, 2)) # 3 x 2 矩阵
扩展:正态分布简介
正态分布是一种概率分布。正态分布是具有两个参数μ和σ²的连续型随机变量的分布,第一参数μ是服从正态分布的随机变量的均值,第二个参数σ²是此随机变量的方差,所以正态分布记作N(μ,σ²)
正态分布图
均值:图形的左右位置
方差:图形是瘦还是胖
方差越小,图形越瘦高,数据越集中
方差越大,图形越矮胖,数据越分散
方差
方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。
总结
到此这篇关于玩数据必备Python库之numpy使用详解的文章就介绍到这了,更多相关Python库之numpy使用内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。