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

WinForm实战:如何用C#和PdfiumViewer打造一个功能齐全的PDF阅读器(含源码)

本文详细介绍了如何使用C#和PdfiumViewer库从零开始构建一个功能齐全的WinForm PDF阅读器。内容涵盖项目环境搭建、核心组件解析、基于命令模式的工具栏与UI架构设计,并深入讲解了智能缩放、页面导航、打印功能等核心交互的实现,以及内存管理和性能优化等高级话题,为开发者提供了一套完整的实战解决方案。

docker8compose的博客 503

Python —— NumPy包

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

DamianVanilla的博客 1534

2.4G板载PCB IFA天线仿真设计

本文简单介绍下2.4GHz的板载PCB IFA天线的HFSS仿真与设计。

射频问问 (RFASK.NET) 是在"微波射频网(MWRF.NET)”系列原创技术专栏基础上升级打造的技术问答学习平台。 6012

TWINCAT3保姆级教程:手把手教你给Ecat从站烧录EEPROM(含XML配置避坑指南)

本文提供TWINCAT3环境下Ecat从站EEPROM烧录的完整教程,涵盖XML配置避坑指南。详细讲解环境准备、设备扫描、XML文件配置、EEPROM烧录流程及故障排查,帮助工程师高效解决设备识别问题,提升产线调试效率。

weixin_30693683的博客 516

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

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

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

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 368

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

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

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

伶俐角少儿编程 485

基于Simulink的PID控制器自动驾驶仿真建模示例

本文通过Simulink仿真平台,详细讲解了基于PID控制器的自动驾驶路径跟踪实现方法。主要内容包括:1)建立自行车运动学模型作为被控对象;2)定义参考路径与横向误差计算方法;3)设计PD控制器并调试参数;4)在Simulink中搭建完整仿真模型;5)分析30km/h车速下的双移线跟踪性能。文章强调PID控制作为自动驾驶入门基础的重要性,并指出其在中低速场景下的适用性,同时给出了工程实践中的优化建议(如前视距离、抗积分饱和等)和扩展方向(如Stanley控制器)。通过完整案例,帮助读者掌握车辆运动学建模和P

xiaoheshang_123的博客 65

numpy代码笔记

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

m0_58752040的博客 1505

MATLAB极坐标伪彩色圆图绘制之polarPcolor函数

polarPcolor函数介绍 我们经常在论文或期刊上看到如下图这种以色调冷暖代表数值大小的极坐标圆图, 而function [varargout] = polarPcolor(R,theta,Z,varargin)可以很好的帮助我们快速绘制这类极坐标圆图。它非常适合雷达或激光雷达的平面位置指示器。使用polarPcolor函数时,我们只需根据手中数据构造相应的二维矩阵Z即可,十分便捷。varargin值为绘制模式选择。R值为半径坐标一维矩阵,theta值为角坐标一维矩阵。 代码示例 这里使用了海洋表面耀光

qq_19512613的博客 1万+

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

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

qq_54129105的博客 4224

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

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

诸神缄默不语的博客 4831

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

小易的Numpy学习笔记

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

小易的博客 1151

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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、付费专栏及课程。

余额充值