Numpy笔记

【Numpy】学习巩固笔记 np.newaxis常常用于将一个一维数组转化为二维数组,或者将二维数组转化为三维数组等。它本质上是一个占位符,表示我们想要在某个位置插入一个新的轴。会报错(数组不能直接转float)。建议转为 NumPy 数组更规范。以下是针对练习错误和当前水平整理的。生成单位矩阵,避免手动输入。 阅读详情

课程:【莫烦Python】Numpy & Pandas (数据处理教程)_哔哩哔哩_bilibili

黑马程序员课程笔记:Numpy | 走在小路上

Numpy简介

Numpy (Numerical Python) 是一个开源的 Python 科学计算库,用于快速处理任意维度的数组。

Numpy 使用 ndarray 对象来处理多维数组,该对象是一个快速而灵活的大数据容器。

ndarray

ndarray是NumPy 提供的一个 N 维数组类型 ,它描述了相同类型的"items"的集合

  1. 存储风格
    • ndarray - 相同类型 - 通用性不强
    • list - 不同类型 - 通用性很强
  2. 并行化运算
    • ndarray 支持向量化运算
  3. 底层语言:Numpy 底层使用 C 语言编写,内部解除了 GIL(全局解释器锁),其对数组的操作速度不受 Python 解释器的限制,效率远高于纯 Python 代码

创建array

# 数组的维度
print('number of dim:',score.ndim)
# 数组的维度
print('shape:',score.shape)
# 一共有多少元素
print('size:',score.size)
# 定义元素类型(默认为电脑内置类型,也可以自定义64位更精确但占空间大)
import numpy as np
a = np.array([1, 23, 4], dtype=int)
print(a.dtype)
#小数形式
import numpy as np
a = np.array([1, 23, 4], dtype=float)
print(a.dtype)
#定义一个多行矩阵,全部矩阵外要用括号括起来
a = np.array([[1,23,4],
              [2,13,5]])
print(a)

#定义一个全部为0的矩阵,shape为(3,4)三行四列
a = np.zeros((3,4))
print(a)

#生成10,20之间step为2的随机数
**a=np.arange(10,20,2)
print(a)
#结果:[10 12 14 16 18]**
#np.arange([start, ]stop, [step, ]dtype=None)
参数解释:
start:起点值;可忽略不写,默认从0开始
stop:终点值;生成的元素不包括结束值
step:步长;可忽略不写,默认步长为1
dtype:默认为None,设置显示元素的数据类型

**#生成一个由0-12随机数组成的矩阵reshape定义其为3行4列
a=np.arange(12).reshape((3,4))
print (a)
# 生成返回5个间隔类均匀分布的数值序列
a=np.linspace(1,10,5)
print(a)

#np.linspace 将范围 [1, 10] 均匀分为 6 个数。
#.reshape((2, 3)) 将这些数按行填充到 2x3 的矩阵中。
import numpy as np
a = np.linspace(1, 10, 6).reshape((2, 3))
print(a)**

矩阵的基础运算

#np.arange(4):生成0-4,step为1的矩阵;矩阵的减法
a=np.array([10,20,30,40])
b=np.arange(4)
c=a-b
print(c)

#次方运算**2:平方**3立方
b=np.arange(4)
c=b**3
print(c)

#作比较
b=np.arange(4)
print(b)
print(b<3)
输出结果:[0 1 2 3]
[ True  True  True False]

#计算三角函数
b=np.arange(4)
c=np.sin(b)
print(c)

#矩阵以纯数字方式相乘和以矩阵变换的形式相乘
a=np.array([[10,20],
            [30,40]])
b=np.arange(4).reshape((2,2))
c=a*b
c_dot=np.dot(a,b)
c_dot_2=a.dot(b)
print(c)
print(c_dot)
print(c_dot_2)
输出结果:
纯数字相乘
[[  0  20]
 [ 60 120]]
 矩阵变换相乘
[[ 40  70]
 [ 80 150]]
 矩阵变换相乘
 [[ 40  70]
 [ 80 150]]

来源:Python数据科学手册p53 

numpy中的axis 

来源:Python数据科学手册p52-53 

【Numpy】对于 Numpy 中 Axis 的理解_numpy axis-优快云博客

1.对于二维数组有两个轴:axis = 0 和 axis = 1。axis = 0 表示横轴,确切地说是行变换的轴。相应的 axis = 1 表示的是列变化的轴。

2.对于多维数组:

以a=np.arange(24).reshape((2,3,4))为例说明:

  • np.arange(24):
    • 生成一个包含从 0 到 23 的一维数组:[0, 1, 2, ..., 23]。
    • 默认步长为 1。
  • .reshape((2, 3, 4)):
    • 将一维数组重新排列为三维数组,形状为 (2, 3, 4)。
    • 第一维包含 2 个子数组,每个子数组是一个 3 行 4 列的二维数组。
  • 赋值给变量 a:
    • a 是一个三维 NumPy 数组。

🌟axis=0;对应红色

axis=1;对应绿色

axis=2;对应蓝色

import numpy as np
a = np.random.random((2,3,4))#随机生成0-1之间的浮点数;如果需要生成随机整数,可以使用 np.random.randint
print(a)
b=np.sum(a,axis=0)
c=np.sum(a,axis=1)
d=np.sum(a,axis=2)
print(b)
print(c)
print(d)

A=np.arange(2,14).reshape((3,4))
min_A=np.argmin(A)#矩阵中最小值的位置
max_A=np.argmax(A)#矩阵中最大值的位置
mean=np.average(A)#求平均数
median=np.median(A)#求中位数
B=np.cumsum(A)#计算累加
C=np.diff(A)#计算累差
print(A)
print(min_A)
print(max_A)
print(mean)
print(median)
print(B)
print(C)
import numpy as np
a=np.arange(14,2,-1).reshape(3,4)
a_1=np.sort(a)#对a矩阵中的每行元素大小进行排序
print(a)
print(a_1)
a=np.arange(14,2,-1).reshape(3,4)
a_1=np.transpose(a)#使矩阵行与列调换
a_2=a.T#与上一行效果相同
print(a)
print(a_1)
print(a_2)
np.clip(a, a_min, a_max, out=None)
# 限制数组元素范围 的函数。它会将数组中的元素限制在指定的最小值和最大值之间,
#低于最小值的部分会替换为最小值,高于最大值的部分会替换为最大值。
a=np.arange(14,2,-1).reshape(3,4)
a_1=np.clip(a,4,10)
mean=np.average(a,axis=0)#对行变换轴元素计算平均值(即计算每列的平均值)
print(a)
print(a_1)

numpy的索引

 

来源:Python数据科学手册p38 

a=np.arange(3,15).reshape(3,4)
print(a)
print(a[1])#索引第二行
print(a[1][1])#索引第二行第二个元素
print(a[1,1])#索引第二行第二个元素
print(a[2:])#索引第三行所有元素(切片)

 来源:Python数据科学手册p38

#for: 表示开始一个循环。
#row: 临时变量,用于存储当前循环中从 a 中取出的元素。
a=np.arange(3,15).reshape(3,4)
for row in a:
 print(row)
a=np.arange(3,15).reshape(3,4)
for row in a:
for item in row:
print(item, end=" ")

#历遍数组A的行和列
A=np.arange(3,15).reshape(3,4)
for row in A:#遍历 A中的每一行,打印出来的结果是数组 A 的每一行。
 print(row)
for column in A.T:#遍历 A.T 的每一行,输出的结果是原数组 A 的每一列。
 print(column)

A=np.arange(3,15).reshape(3,4)
print(A.flatten())#返回一个展平后的 1D 数组,将 3x4 的矩阵转换为一个单行数组
for item in A.flat:#通过 flat 迭代器逐个访问数组 A 的元素,并将每个元素打印出来。
 print(item)

数组的合并和分割

Python数据科学手册p58

#np.vstack((A, B)):vstack 函数将传入的多个数组沿着垂直轴(即按行方向)堆叠。
#这里是将 A 和 B 作为行堆叠在一起,形成一个二维数组。
#np.hstack((A,B)): hstack 函数将数组沿水平方向拼接,
#也就是说,两个数组会按列的顺序并排放在一起,形成一个新的数组。
A=np.array([1,2,3])
B=np.array([4,5,6])
print(np.vstack((A,B)))
print(np.hstack((A,B)))


A=np.array([1,2,3])
C=A[np.newaxis,:]#np.newaxis, : 的意思是将原本的一维数组变为一个二维数组,在第一维新增一个维度。
                 #C 的形状变为 (1, 3),即 1 行 3 列。
D=A[:,np.newaxis]#:, np.newaxis 的意思是在第二维新增一个维度,将原数组转为一个二维数组,每个元素作为一行。
                 #D 的形状变为 (3, 1),即 3 行 1 列。
print(C)
print(D)


A=np.array([[1,2,3],
           [4,5,6]])
B=np.concatenate((A,A))
C=np.concatenate((A,A),axis=1)
print(B)
print(C)

A=np.arange(12).reshape(3,4)
B=np.split(A,2,axis=1)
print(B)
#B = np.split(A, 2, axis=1):
- np.split` 用来将数组分割为指定数量的子数组。
- 参数 `2` 表示将数组分成 2 个子数组。
- 参数 `axis=1` 表示沿列(横向)方向分割。
- `A` 的列数是 4,因此分割后每个子数组将有 2 列。


A=np.arange(12).reshape(3,4)
B=np.array_split(A,3,axis=1)#array_split非平均分割
print(B)

A=np.arange(12).reshape(3,4)
B=np.vsplit(A,3)
C=np.hsplit(A,2)
D=np.hsplit(A,[2,3])#[2,3]为分裂点:即1-2,3,4
print(B)
print(C)
print(D)


创建副本 

A=np.array([1,2,3,4])
B=A.copy()
A[0]=5#改变原数组的值,副本不会发生改变
print(A)
print(B)

numpy笔记 文章目录numpy创建数组数组类名数据的类型numpy中常见的更多数据类型数据类型的操作数据的形状数据和数的运算数据和数据运算轴(axis)numpy读取数据numpy中的转置numpy索引和切片numpy中的nan和infnumpy中的nan的注意点numpy中常用统计函数数组的拼接其他numpy方法 在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算 numpy创建数组 a = np.array([1,2,3,4,5]) b 阅读详情

相关推荐

超详细的python_numpy教程

是七月在线david老师的numpy视频对应讲义,特别详细清楚!

大学学习笔记之numpy库的“几种”常用方法

构建新数组,通过索引数组来选择元素。:产生[0, 1)之间的随机样本。:从给定的一维数组中生成随机样本。:从标准正态分布中抽取样本。:从离散均匀分布中抽取整数。:计算特征值和右特征向量。:测试所有元素是否为真。:计算最小值和最大值。:返回非零元素的索引。:创建未初始化数组。:创建线性间隔数列。:测试是否存在真值。:根据条件选择元素。:沿指定轴选取元素。:就地打乱一个序列。

m0_74024118的博客 1146

蓝牙开发实战:如何用Wireshark抓取HCI协议包(附完整分析步骤)

本文详细介绍了如何使用Wireshark抓取和分析蓝牙HCI协议包,包括环境搭建、过滤器配置技巧、数据包深度解析及高级调试方法。通过实战案例,帮助开发者快速定位蓝牙连接问题,提升调试效率。

cuda7parallel的博客 1149

Python —— NumPy包

NumPy最重要的一个特点是其N维数对象ndarry,它是用于存放同类型元素的多维数组,ndarry中的每个元素在内存中占有相同大小的区域。

DamianVanilla的博客 1534

AOA(Angle of Arrival,到达角)定位算法及其误差分析的原理和MATLAB仿真_aoa定位算法

如图所示,有基站 S 1 ( x 1 , y 1 , z 1 ) , S 2 ( x 2 , y 2 , z 2 ) S_1(x_1,y_1,z_1),S_2(x_2,y_2,z_2) S1​(x1​,y1​,z1​),S2​(x2​,y2​,z2​),目标 T ( x , y , z ) T(x,y,z) T(x,y,z)。2+(z_1-z_2)^2} step1:两基站间的距离L=(x1−x2)2+(y1​−y2​)2+(z1​−z2​)2。

2401_87555613的博客 1483

高分影像批处理第三回——RPC文件与几何校正

前言 前面两章部分完成了图像的基本组织和大气校正,可是对于遥感影像地理相关数据,精确的地理坐标也是非常关键的。L1级数据,可惜,并没有帮我们处理地理坐标系统。无论是打开ENVI还是用gdal工具查看图像元数据,其坐标系统都是错误的或者说是未读入的。因此本章节来解决这个问题。

weixin_43762038的博客 1万+

【Python】Numpy库近50个常用函数详解和示例,可作为工具手册使用

本文以yolo系列代码为基础,在其中查找用到的numpy函数,包含近50个函数,本文花费多天,三万多字,通过丰富的函数原理和示例对这些函数进行详解。以帮助大家理解和使用。

不定时分享,互相学习,共同进步 5409

【ubuntu24.04】auto remove后,重启,kernel panic ,please reboot your computer vfs unable to mount root fs

Ubuntu 24.04系统在运行auto remove后出现内核恐慌(kernel panic)无法启动,显示"VFS: unable to mount root fs"错误。该问题是由于当前内核被清除导致系统无法挂载根分区。解决步骤包括:1)尝试用GRUB菜单中的旧内核启动;2)在GRUB中临时编辑启动参数;3)使用Ubuntu启动盘进行chroot修复;4)使用Boot-Repair工具一键修复。成功启动后,需要重新安装linux-generic等元包,重建initramfs并更新

突围 1215

NumPy:深度学习系列视频教程

本课程是NumPy丛入门到精通课程。主要介绍了NumPy函数库的使用方法。本课程涵盖了NumPy的安装、数组对象、常用函数、矩阵运算、线性代数、金融函数、窗函数等内容。本视频课程涉及面较广。另外,每一个课时都会给出简明扼要的代码示例,并为大部分示例给出了实用案例演示,如股票数据分析,同时使用matplot函数库对数据进行了可视化。对于数据分析和机器学习的初学者,本视频课程具有极强的可读性。

赛豆科技 AIVA 汽车智能体架构演进面试题与答案

摘要 赛豆科技AIVA汽车智能体架构从座舱AI演进到整车智能体,最终实现自进化的超级智能体。其核心是"先有AI再有车"的理念,将AI作为产品主轴而非附加功能。架构设计采用端-边-云协同,确保低延迟响应;整车智能体通过Planner、Tool Registry等关键组件实现自主决策;自进化机制结合车端个性化学习和云端群体学习,并设置多重安全验证。多域协作采用分层架构,关键安全功能仍由确定性逻辑控制。该架构实现了从被动响应到主动服务的范式转变,使车辆能够持续进化。

AI天才研究院 122

ASM准入小助手卸载没有密码的方法:读取明文密码2024年7月有效

在一次工作过程中,电脑中意外的安装了一个ASM准入小助手软件,工作结束以后回来发现没有卸载,然后就决定把它卸载掉,但是居然给了我一个大大的提示框:由于联系不到当时给我安装的那个人了,所以一时陷入了焦灼的状态,因为我安装另一个终端准入,会直接提示冲突了。所以经过注册表(regedit)、任务管理器等各种折腾之后,最后都失败了,然后想起了多年前在吾爱论坛学到过的东西,最后意外的找到了密码,然后就完美成功卸载了。

布啦啦 7805

numpy代码笔记

纯代码上做笔记,没什么文字

m0_58752040的博客 1505

零差云控 ZeroErr eRob 电机 CAN、CANopen、EtherCAT、ROS2 机器人开发详细教程

TwinCAT 3(Windows 控制与自动化技术)是 Beckhoff 提供的开发平台,可将任何兼容 PC 转变为实时控制系统,用于管理各种类型的工业自动化系统,如 PLC(可编程逻辑控制器)、运动控制、机器人等。

机器人控制与仿真应用 1万+

Python学习笔记合集(Numpy总结)

Python学习笔记Numpy合集(总结)零基础学Numpy,就来这里看Numpy学习笔记,简单易懂!

qq_54129105的博客 4224

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Numpy User Guide系列笔记1:NumPy Quickstart Tutorial笔记

本文是NumPy quickstart这一教程的简单学习笔记。

诸神缄默不语的博客 4831

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

小易的Numpy学习笔记

NumPy 提供了比 Python 更加丰富的数据类型(3intc和 C 语言的 int 类型一样,一般是 int32 或 int 644intp用于索引的整数类型(类似于 C 的 ssize_t,通常为 int32 或 int64)17complex_复数类型,与 complex128 类型相同18complex64表示实部和虚部共享 32 位的复数19complex128表示实部和虚部共享 64 位的复数22string_表示字节串类型,等价于bytes_

小易的博客 1151

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NumPy 学习笔记

Matplotlib是Python的一个绘图库,支持跨平台运行,能够根据NumPy ndarray数组绘制2D图像。Matplotlib的图形由Figure、Axes、Axis和Artist对象组成,提供了丰富的绘图类型和自定义选项。Matplotlib允许通过各种参数和函数自定义图表的外观,如设置标题、标签、图例、坐标轴范围、刻度等。# 创建图形和子图# 绘制数据# 设置标题和标签# 添加图例# 设置坐标轴范围# 设置刻度# 显示网格# 显示图形plt.show()

2202_75762857的博客 716

NumPy笔记

NumPy笔记 NumPy对象 NumPy中的ndarray是个多维数组对象,该对象由两部分组成 实际数据 描述这些数据的元数据 大部分的数组操作仅仅修改元数据部分,而不改变底层的实际数据 NumPy数组一般是同质的(但有一种特殊的数组类型例外,它是异质的),即数组中的所有元素类型必须是一致的。这样有一个好处:如果我们知道数组中的元素均为同一类型,该数组所需的存储空间就很容易确定下来。 创建...

JDMXI的博客 292

NumPy 新手友好笔记

想象一下,Python 的普通列表(List)就像一个普通的文具盒,你可以把各种东西(数字、字符串等)放进去。而就像一个专门为数字打造的、功能超强的“这个工具箱里的核心工具叫做ndarray(N-dimensional array,N维数组),你可以把它看作是一个或,里面装着的数字。

HGTJYNL的博客 1374

Numpy学习笔记分享

NumPy是Python数据分析领域的基础库,以其高效的数组操作和数学计算能力闻名,效率高于list的计算速度。本文基于学习笔记整理,带你快速掌握NumPy的核心功能。如有不足,亲谅解!

2401_83372039的博客 1614

numpy思维导图,笔记

自己从慕课网教程学习的,总结的笔记,详细的可以看numpy(1~5),希望各位看到的大神可以帮助补充和改正。

winterhc的博客 673

# Numpy User Guide笔记1:NumPy Quickstart Tutorial

[https://numpy.org/doc/stable/user/index.html](Numpy User Guide官方网址) 本文是Numpy quickstart这一教程的简单学习笔记你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

wedream23的博客 251

Numpy学习笔记pdf下载

Numpy学习笔记pdf下载 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了《Numpy学习笔记》的PDF版本,适用于希望深入学习Numpy库使用方法的用户。该资源详细记录了Numpy库的基本使用、高级功能和实例解析,是学习Numpy不可多得的参考资料。通过这份学习笔记,你可以系统地掌握Numpy的核心概念和编程技巧,为数据处理、科学计算打下坚实基础。 去发现同类...

gitblog_06739的博客 315
下一篇: Pandas笔记
Jolin-CC
博客等级 码龄4年 33粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值