首页 > 其他分享 >人工智能理论基础之Numpy(迭代数组、数组操作、数组元素的增删改查、统计函数)

人工智能理论基础之Numpy(迭代数组、数组操作、数组元素的增删改查、统计函数)

时间:2024-10-24 08:50:26浏览次数:9  
标签:10.1 迭代 方差 元素 改查 参数 数组 Numpy

文章目录


前言

本笔记对numpy中后半部分进行讲解,涉及到的内容有迭代数组、数组操作、数组元素的增删改查、还有统计函数,如果在numpy部分有其他疑问的同学可以在我上一篇笔记进行查询。同样也有众多小白的思考和理解。


一、迭代数组

介绍:nditer 是 NumPy 中的一个强大的迭代器对象,用于高效地遍历多维数组。nditer 提供了多种选项和控制参数,使得数组的迭代更加灵活和高效。
nditer提供了多种控制参数,用于控制迭代的行为。

1、order参数

order 参数用于指定数组的遍历顺序。默认情况下,nditer 按照 C 风格(行优先)遍历数组。

C 风格(行优先): order=‘C’
Fortran 风格(列优先)
: order='F

在这里插入图片描述

2. flags参数

flags 参数用于指定迭代器的额外行为。

  • multi_index: 返回每个元素的多维索引。
  • external_loop: 返回一维数组而不是单个元素,减少函数调用的次数,从而提高性能。
    在这里插入图片描述

3.op_flags 参数

op_flags 参数用于指定操作数的行为。

  • readonly: 只读操作数。
  • readwrite: 读写操作数。
  • writeonly: 只写操作数。
    在这里插入图片描述

10.数组操作

10.1 数组变维在这里插入图片描述

10.1.1 flat

返回一个一维迭代器,用于遍历数组中的所有元素。无论数组的维度如何,ndarray.flat属性都会将数组视为一个扁平化的一维数组,按行优先的顺序遍历所有元素。
语法:
在这里插入图片描述
在这里插入图片描述

10.1.2 flatten()

用于将多维数组转换为一维数组。flatten() 返回的是原数组的一个拷贝,因此对返回的数组进行修改不会影响原数组。
在这里插入图片描述
在这里插入图片描述

10.1.3 ravel()

用于将多维数组转换为一维数组。与 flatten() 不同,ravel() 返回的是原数组的一个视图(view),而不是拷贝。因此,对返回的数组进行修改会影响原数组。
语法:
在这里插入图片描述
参数**
order: 指定数组的展开顺序。

  • 'C':按行优先顺序展开(默认)。
  • 'F':按列优先顺序展开。
  • 'A':如果原数组是 Fortran 连续的,则按列优先顺序展开;否则按行优先顺序展开。
  • 'K':按元素在内存中的顺序展开。

10.2数组转置

在这里插入图片描述

10.3 修改数组维度

多维数组(也称为 ndarray)的维度(或轴)是从外向内编号的。这意味着最外层的维度是轴0,然后是轴1,依此类推。
在这里插入图片描述

10.4连接数组

在这里插入图片描述

hstack函数要求堆叠的数组在垂直方向(行)上具有相同的形状。如果行数不一致,hstack() 将无法执行,并会抛出 ValueError 异常。

hstack() 要求堆叠的数组在垂直方向(行)上具有相同的形状。如果列数不一致,将无法执行堆叠操作。

vstack() 和 hstack() 要求堆叠的数组在某些维度上具有相同的形状。如果维度不一致,将无法执行堆叠操作。

10.5 分割数组

总结在这里插入图片描述

11.数组元素的增删改查

11.1 resize据的函数和方法。![

11.2 append在这里插入图片描述

11.3 insert

在这里插入图片描述

11.4 delete

在这里插入图片描述

11.5 argwhere

返回数组中非 0 元素的索引,若是多维数组则返回行、列索引组成的索引坐标

11.6 unique

在这里插入图片描述

12.统计函数

12.1 amin() 和 amax()

  • 计算数组沿指定轴的最小值与最大值,并以数组形式返回
  • 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向

12.2ptp()

  • 计算数组元素中最值之差值,即最大值 - 最小值
  • 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向

12.3 median()

用于计算中位数,中位数是指将数组中的数据按从小到大的顺序排列后,位于中间位置的值。如果数组的长度是偶数,则中位数是中间两个数的平均值。

12.4 mean()

沿指定的轴,计算数组中元素的算术平均值(即元素之总和除以元素数量)

average()

加权平均值是将数组中各数值乘以相应的权数,然后再对权重值求总和,最后以权重的总和除以总的单位数(即因子个数);根据在数组中给出的权重,计算数组元素的加权平均值。该函数可以接受一个轴参数 axis,如果未指定,则数组被展开为一维数组。
在这里插入图片描述
其中 xi是数组中的元素,wi是对应的权重。

如果所有元素的权重之和等于1,则表示为数学中的期望值。

7.var()

在 NumPy 中,计算方差时使用的是统计学中的方差公式,而不是概率论中的方差公式,主要是因为 NumPy 的设计目标是处理实际数据集,而不是概率分布。

np.var 函数默认计算的是总体方差(Population Variance),而不是样本方差(Sample Variance)。

总体方差:

对于一个总体数据集 X={x1,x2,…,xN},总体方差的计算公式为:
在这里插入图片描述

  • N是总体数据点的总数。
  • μ是总体的均值。
    样本方差:

对于一个样本数据集 X={x1,x2,…,xn},样本方差 的计算公式为:
在这里插入图片描述
其中:

  • n是样本数据点的总数。
  • xˉ是样本的均值。

在样本数据中,样本均值的估计会引入一定的偏差。通过使用 n−1n−1 作为分母,可以校正这种偏差,得到更准确的总体方差估计。

8、std()

标准差是方差的算术平方根,用来描述一组数据平均值的分散程度。若一组数据的标准差较大,说明大部分的数值和其平均值之间差异较大;若标准差较小,则代表这组数值比较接近平均值

标签:10.1,迭代,方差,元素,改查,参数,数组,Numpy
From: https://blog.csdn.net/guanyuyouxiu_/article/details/143166031

相关文章

  • Java基础day03---循环,数组,杨辉三角
    Java基础day03接day02----流程控制---3、循环一、循环循环语法结构执行逻辑通用for循环for(初始化;条件判断;步长设置){//循环体}第一次循环:初始化,条件判断,循环体,步长设置;第2-n次循环:条件判断,循环体,while循环while(判断条件){//循环体}先条件判断再执行循环体do.............
  • 利用数组处理批量数据之习题
    用筛选法求100以内的素数//用筛选法求100以内的素数#include<stdio.h>intmain_6__1(void){ intarr[101]={0}; for(inti=0;i<101;i++)//赋值 arr[i]=i; arr[0]=arr[1]=-1;//挖掉 for(inti=0;i<100;i++) { if(-1==arr[i])//被挖......
  • 【数据结构】-数组
    数组特点:数组的地址连续,可以通过下标获取数据。1.数组扩容步骤:$1.创建一个比原来数组更长的新数组$2.让原来数组当中的数据依次复制到新数组当中$3.让arr指向新数组,原数组空间释放  2.数组插入2.1最后位置插入$1.判断数组当中有没有位置,用size记录当......
  • javascript数组splice和slice介绍
    一splice1.概述splice是JavaScript数组对象的一个方法,用于改变原数组的内容。它可以添加、删除或替换数组中的元素。2.语法array.splice(start,deleteCount,item1,item2,...)start:需要改变的数组的起始索引。如果是负数,则表示从数组末尾开始计数。de......
  • 2024-10-23:最高频率的 ID。用go语言,给定两个长度相等的整数数组 nums 和 freq, 其中num
    2024-10-23:最高频率的ID。用go语言,给定两个长度相等的整数数组nums和freq,其中nums中的每个元素表示一个ID,而freq中的每个元素表示对应ID在此次操作后出现的次数变化。如果freq[i]为正数,则表示在这次操作中nums[i]的ID会增加freq[i]次;如果freq[i]为负数,则表示在这次操作中nums[i......
  • C语言经典20例(输入数组元素,求出最大值和最小值,并输出)
    在c语言中,要实现要实现“输入数组元素,并求出最大值和最小值,并输出”主要步骤主要有以下几步:1.必要的头文件。2.定义数组大小。3.从用户那里接受数组元素的输入4.使用循环遍历数组。找出最大值和最小值5.输出最大值和最小值代码如下:#include<stdio.h>intmain(){......
  • 每日算法一练:剑指offer——数组篇(4)
    数据流中的中位数        中位数 是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2+3)/2=2.5设计一个支持以下两种操作的数据结构:voidaddNum(intnum) -从数据......
  • KMP数组!启动!
    ......
  • 10.22 树状数组
    https://codeforces.com/contest/1838/problem/D都在代码里了constintINF=1e9;structInfo{//定义一个结构体intmn;Info():mn(INF){}//调用这个自定义函数就把mn变成极大值Info(intmn):mn(mn){}//调用这个自定义函数就把mn变成你输入的值};usingTag=int;I......
  • VBA中用range生成的行数组或列数组均为二维数组,转成一维方法
    在excel中用range方法生成的行或列数组均为二维数组,1、行数组。如arr=sheet1.range("a1:c1"),这是一行三列的二维数组,用arr(1,1)、arr(1,2)、arr(1,3)均能获取数据,但如用arr(1)、arr(2)、arr(3)获取数组就会出错,提示“下标越界",若用arr(1,1)就会取到数据,所以用range生成的行数......