NumPy简单入门教程

《Python笔记》安装(pip)第三方包报错 pip 安装numpy报错,微软 Visual Studio 重新搭建C++编译环境 阅读详情

NumPy是Python中的一个运算速度非常快的一个数学库,是Python中的数据科学和机器学习。

数据基础

创建一个数组

Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> a=np.array([0,1,2,3,4])
>>> b=np.array((0,1,2,3,4))
>>> c=np.arange(5)
>>> d=np.linspace(0,2*np.pi,5)
>>> print(a)
[0 1 2 3 4]
>>> print(b)
[0 1 2 3 4]
>>> print(c)
[0 1 2 3 4]
>>> print(d)
[0.         1.57079633 3.14159265 4.71238898 6.28318531]
>>> print(a[3])
3
>>> a=np.array([[11,12,13,14,15],
...             [16,17,18,19,20],
...             [21,22,23,24,25],
...             [26,27,28,29,30],
...             [31,32,33,34,35]])
>>> print(a[2,4])
25
>>>

它背后的一些数学

矢量、矩阵(暂时没明白)

多组数组切片

>>> print(a[0,1:4])
[12 13 14]
>>> print(a[1:4,0])
[16 21 26]
>>> print(a[::2,::2])
[[11 13 15]
 [21 23 25]
 [31 33 35]]
>>> print(a[:,1])
[12 17 22 27 32]
>>>

数据属性 

>>> print(type(a))
<class 'numpy.ndarray'>
>>> print(a.dtype)
int32
>>> print(a.size)
25
>>> print(a.shape)
(5, 5)
>>> print(a.itemsize)
4
>>> print(a.ndim)
2
>>> print(a.nbytes)
100
>>>

itemsize:每个项占用的字节数。

ndim:数组的维数。

nbytes: 数组中的所有数据消耗掉的字节数。(这句子没看懂)

使用数组

基本操作符

>>> a=np.arange(25)
>>> a=a.reshape((5,5))
>>> b=np.array([10,62,1,14,2,56,79,2,1,45,
...             4,92,5,55,63,43,35,6,53,24,
...             56,3,56,44,78])
>>> b=b.reshape((5,5))
>>> print(a)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]
>>> print(b)
[[10 62  1 14  2]
 [56 79  2  1 45]
 [ 4 92  5 55 63]
 [43 35  6 53 24]
 [56  3 56 44 78]]
>>> print(a+b)
[[ 10  63   3  17   6]
 [ 61  85   9   9  54]
 [ 14 103  17  68  77]
 [ 58  51  23  71  43]
 [ 76  24  78  67 102]]
>>> print(a-b)
[[-10 -61   1 -11   2]
 [-51 -73   5   7 -36]
 [  6 -81   7 -42 -49]
 [-28 -19  11 -35  -5]
 [-36  18 -34 -21 -54]]
>>> print(a*b)
[[   0   62    2   42    8]
 [ 280  474   14    8  405]
 [  40 1012   60  715  882]
 [ 645  560  102  954  456]
 [1120   63 1232 1012 1872]]
>>> print(a/b)
[[0.         0.01612903 2.         0.21428571 2.        ]
 [0.08928571 0.07594937 3.5        8.         0.2       ]
 [2.5        0.11956522 2.4        0.23636364 0.22222222]
 [0.34883721 0.45714286 2.83333333 0.33962264 0.79166667]
 [0.35714286 7.         0.39285714 0.52272727 0.30769231]]
>>> print(a**2)
[[  0   1   4   9  16]
 [ 25  36  49  64  81]
 [100 121 144 169 196]
 [225 256 289 324 361]
 [400 441 484 529 576]]
>>> print(a<b)
[[ True  True False  True False]
 [ True  True False False  True]
 [False  True False  True  True]
 [ True  True False  True  True]
 [ True False  True  True  True]]
>>> print(a>b)
[[False False  True False  True]
 [False False  True  True False]
 [ True False  True False False]
 [False False  True False False]
 [False  True False False False]]
>>> print(a.dot(b))
[[ 417  380  254  446  555]
 [1262 1735  604 1281 1615]
 [2107 3090  954 2116 2675]
 [2952 4445 1304 2951 3735]
 [3797 5800 1654 3786 4795]]
>>>

dot()函数计算两个数组的点积。(没看懂) 

它背后的一些数学知识

dot()函数称为点积。没看懂。

数组特殊运算符

>>> a=np.arange(10)
>>> print(a)
[0 1 2 3 4 5 6 7 8 9]
>>> print(a.sum())
45
>>> print(a.min())
0
>>> print(a.max())
9
>>> print(a.cumsum())
[ 0  1  3  6 10 15 21 28 36 45]
>>>

cumsum()函数:首先将第一个元素和第二个元素相加,并将计算结果存储在一个列表中,然后将该结果添加到第三个元素中,然后再将该结果存储在一个列表中。(暂时没看懂)

索引进阶

花式索引

花式索引是获取数组中我们想要的特定元素的有效方法。

>>> a=np.arange(0,100,10)
>>> indeces=[1,5,-1]
>>> b=a[indeces]
>>> print(a)
[ 0 10 20 30 40 50 60 70 80 90]
>>> print(b)
[10 50 90]
>>>

布尔屏蔽

>>> import matplotlib.pyplot as plt
>>> a=np.linspace(0,2*np.pi,50)
>>> b=np.sin(a)
>>> plt.plot(a,b)
[<matplotlib.lines.Line2D object at 0x00000275EE5D3DC0>]
>>> mask=b>=0
>>> plt.plot(a[mask],b[mask],'bo')
[<matplotlib.lines.Line2D object at 0x00000275EE610460>]
>>> mask=(b>=0)&(a<=np.pi/2)
>>> plt.plot(a[mask],b[mask],'go')
[<matplotlib.lines.Line2D object at 0x00000275EE610220>]
>>> plt.show()
>>>

 

缺省索引

>>> a=np.arange(0,100,10)
>>> b=a[:5]
>>> c=a[a>=50]
>>> print(a)
[ 0 10 20 30 40 50 60 70 80 90]
>>> print(b)
[ 0 10 20 30 40]
>>> print(c)
[50 60 70 80 90]
>>>

Where函数

Where()函数是另外一个根据条件返回数组中的值的有效方法。只需要把条件传递给它,它就会返回一个使得条件为真的元素的列表。(没看懂)

>>> a=np.arange(0,100,10)
>>> b=np.where(a<50)
>>> c=np.where(a>=50)[0]
>>> print(b)
(array([0, 1, 2, 3, 4], dtype=int64),)
>>> print(c)
[5 6 7 8 9]
>>> print(a)
[ 0 10 20 30 40 50 60 70 80 90]
>>>

OSCS开源安全周报第13期:Exchange 高危漏洞公开 OSCS 社区共收录安全漏洞31个,公开漏洞值得关注的是 Apache Commons JXPath 存在代码执行漏洞(CVE-2022-41852),Microsoft Exchange 远程代码执行漏洞(ProxyNotShell(CVE-2022-41040),Apache Tomcat 条件竞争漏洞(CVE-2021-43980),FasterXML jackson-databind 小于2.14.0-rc1拒绝服务漏洞(CVE-2022-42003)。 阅读详情

相关推荐

网格自适应实战 | 攻克超弹性体大变形不收敛难题

本文针对超弹性体(如橡胶)在大变形仿真中因网格严重扭曲导致计算不收敛的难题,提供了基于ANSYS网格自适应技术的实战解决方案。文章详细阐述了从问题诊断、模型准备到核心参数设置的完整流程,并介绍了结合混合U-P单元技术的进阶组合策略,有效攻克了材料压缩等场景下的仿真收敛问题。

week9的博客 515

Python开发环境配置

1,安装 https://www.python.org/ 验证: Microsoft Windows [版本 10.0.19043.928] (c) Microsoft Corporation。保留所有权利。 C:\Users\laok>py Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", .

I AM COMING BACK... 531

[QT笔记]QTableView与QTableWidget表头设置实战对比

本文深入对比了QT开发中QTableView与QTableWidget在表头设置上的核心差异与实践方法。QTableWidget提供开箱即用的便捷API,适合快速开发;而QTableView遵循模型-视图架构,表头数据由模型管理,虽设置稍复杂但灵活性与扩展性更强。文章通过实战代码示例,详细解析了两种组件的适用场景、性能考量及常见避坑指南,帮助开发者根据项目需求做出高效选择。

weixin_29018335的博客 322

Python学习基础笔记四十一——sys模块

Python学习基础笔记

CCH2024的专栏 567

Adams与Matlab联合仿真入门:从零搭建你的第一个动力学模型

本文为Adams与Matlab联合仿真新手提供了一份详尽的入门指南。文章从软件环境配置、版本兼容性检查讲起,逐步演示了如何在Adams中构建单摆动力学模型并定义输入输出接口,以及在Matlab/Simulink中搭建控制回路。通过一个完整的受控单摆实例,手把手教你完成从模型导出、模块生成到执行联合仿真的全流程,帮助你快速搭建并运行第一个联合仿真模型,实现动力学与控制系统的协同验证。

g5h6i7j的博客 699

Amesim基础篇-元件详解-流体库管路

Amesim基础篇-元件详解-流体库管路

2201_75375391的博客 4519

2022年4月24日:面向初学者的Python--Python错误处理(很难理解)

使用回溯查找错误 Python中的异常是语言的核心功能。 回溯 回溯几乎始终包含以下信息: 涉及对每个函数的每次调用的所有文件路径 与每个文件路径关联的行号 产生异常时涉及的函数、方法或类的名称 引发的异常的名称 Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" ...

DXB2021的博客 1509

使用ChatGPT工具阅读文献的实战教程

本文介绍核心内容为使用ChatGPT工具阅读文献,希望对学习和使用ChatGPT的同学们有所帮助。为了兼顾质量和速度,本专栏的更新频率为一周一到两更。 文章目录 1. 前言 2. 实战教程 2.1 下载工具并登录 2.2 提取文献中的关键信息

herosunly的博客 15万+

python如何向上取整数_Python实战:NumPy 简单入门教程(14)

NumPy 简单入门教程Python、Numpy 教程 | NumPy 中文​www.numpy.org.cnNumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。NumPy绝对是科学Python成功的关键之一,如果你想要进入Python...

weixin_39671467的博客 965

【STM32项目】基于AI技术的多功能消防机器人(完整工程资料源码)

机器人通过巡逻扫描环境空间与障碍物、定位导航、探测物体/环境进行建模/自动地图测绘、扫描火焰、获取温湿度大小、获取空气安全情况来判断当前环境地点是否安全,检测到温度过高或检测到易燃、烟雾、有毒气体或摄像头识别到火焰时能够通过高压水泵喷射器来实现火焰隔离工作,蜂鸣器进行现场鸣笛报警,同时将当前环境温湿度大小、空气情况、环境地图、是否安全信息,将各个传感器来接收获取到的信息,实时发送到用户手机中的微信小程序,实现与用户远程监视功能,用户同时也能通过手机与电脑远程下发命令来操控机器人来实现交互功能

嵌入式技术开发 1万+

python爬虫项目(六十八):爬取电商平台用户购买历史数据,分析消费行为

本文详细介绍了如何爬取电商平台用户购买历史数据,并分析其消费行为。通过爬虫技术、数据存储、分析和可视化等步骤,可以深入了解消费者的行为特征。未来,随着数据分析技术的不断发展,利用人工智能和机器学习方法对消费行为进行更深层次的分析,将成为电商平台提升竞争力的重要手段。

斌擎科技 2767

NumPy 简单入门教程

NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。 NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它。在我看来,NumPy的API设计得很好,所以我们要开始使用它...

大脸猫的博客 387

LPDDR6来了!带你一文看懂它和LPDDR5/5X的差距 + 技术演进逻辑全解析

🧠从速率到架构,从总线宽度到协议设计,LPDDR6 每一个改动都不是拍脑袋做的,它针对的是AI / HPC / 云计算 / 下一代笔记本平台的真实需求。作为工程师的我们,不仅要“用得上”,更要“测得准”,因为没有测试验证,就没有量产落地!🎯LPDDR6不是未来,而是现在进行时!

weixin_43199439的博客 2168

python3 numpy教程_NumPy 简单入门教程

# NumPy 简单入门教程NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它。在我看来,NumPy的API设计得很...

weixin_39923599的博客 330

数学建模模型总结

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

技术图文:NumPy 的简单入门教程

背景 这段时间,LSGO软件技术团队正在组织 “机器学习实战刻意练习”活动,这个活动是“Python基础刻意练习”活动的升级,是对学员们技术的更深层次的打磨。在用 Python 写各类机器学习算法时,我们经常会用到 NumPy库,故在这里总结一下,以方便学员们的学习。 什么是 NumPy呢? NumPy 这个词来源于两个单词 – Numerical和Python。其是一个功能强大的 Python ...

老马的程序人生 1109

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

numpy基础篇-简单入门教程2

numpy基础篇-简单入门教程2 import numpy as np Array 数组 print(np.zeros((2, 2))) # [[0. 0.] [0. 0.]] print(np.ones((2, 2))) # [[1. 1.] [1. 1.]] print(np.full((2, 2), 7)) # [[7 7] [7 7]] print(np.eye(2)) ...

轮子去哪儿了 274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

numpy基础篇-简单入门教程3

numpy基础篇-简单入门教程3 np import numpy as np np.__version__ print(np.__version__) # 1.15.2 numpy.arange(start, stop, step, dtype),创建一维范围数组 print(np.arange(10)) # [0 1 2 3 4 ...

轮子去哪儿了 259

numpy基础篇-简单入门教程4

numpy基础篇-简单入门教程4 np.set_printoptions(precision=3),只显示小数点后三位 np.random.seed(100) rand_arr = np.random.random([2, 2]) np.set_printoptions(suppress=True, precision=3) # 设置为可使用科学计数法 print(rand_arr) ...

轮子去哪儿了 450

numpy基础篇-简单入门教程1

numpy基础篇-简单入门教程1 np.split(A, 4, axis=1),np.hsplit(A, 4) 分割 A = np.arange(12).reshape((3, 4)) # 水平方向的长度是4 print(np.split(A, 4, axis=1)) # 参数必须是可均分的,vertically均分成四块,分垂直风向,相当于竖着切举证 print(np...

轮子去哪儿了 585

Python Numpy库 最快入门教程(最详细最简单)

ndarray数组的索引和切片方式与Python中列表的索引和切片操作相同。

hanmo22357的博客 1958

numpy学习

numpy教程也看了不少了,最开始看哔哩哔哩,后来看教程,可还是糊里糊涂的。最主要的原因在于看的太杂,以至于什么都没记住。 参考链接:https://www.numpy.org.cn/article/advanced/index.html NumPy简单入门教程 1.数组基础 (1)创建一个数组 # 1D Array a = np.array([0, 1, 2, 3, 4]) b = np.arr...

qq_42278791的博客 217

1234无重复三位数python_Python实战:NumPy 简单入门教程(14)

NumPy 简单入门教程Python、Numpy 教程 | NumPy 中文​www.numpy.org.cnNumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。NumPy绝对是科学Python成功的关键之一,如果你想要进入Python...

weixin_39825105的博客 248

python向量计算库教程_Python进阶-Numpy科学计算库(简单入门)

Numpy简介NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩...

weixin_31765677的博客 373
上一篇: Go语言的格式化输出函数fmt.Printf
下一篇: 12121. 买铅笔
DXB2021
博客等级 码龄5年 307粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值