Python第三方扩展库NumPy

Python第三方扩展库NumPy

NumPy(Numerical Python,注意使用时全部小写 numpy) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

在Windows平台上安装numpy,可在cmd命令行中,输入如下命令

pip3 install numpy 

回车,默认情况使用国外线路较慢,我们可以使用国内的镜像网站:

豆瓣:https://pypi.doubanio.com/simple/

清华:https://pypi.tuna.tsinghua.edu.cn/simple

例如使用清华的镜像

pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

电脑上安装了多个Python版本,你可以为特定版本的Python安装模块(库、包)。例如我的电脑中安装了多个Python版本,要在Python 3.10版本中安装,并使用清华的镜像cmd命令行中,输入如下命令

py -3.10 -m pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

回车即可。

【关于安装安装第三方库的更多情况,可参见:https://blog.csdn.net/cnds123/article/details/104393385 】

官方文档https://numpy.org/doc/stable/

NumPy 中文文档https://numpy123.com/

NumPy是许多其他科学计算库的基础,如:

  • Pandas:提供高级数据结构和数据分析工具。
  • SciPy:用于科学和技术计算的库,提供了许多数值计算的功能。
  • Matplotlib:用于创建2D图表和图形的库。
  • Scikit-learn:用于机器学习的库。
  • TensorFlow和PyTorch:用于深度学习的库。

【顺便提示:NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

NumPy:提供对多维数组的支持,以及高效的数组操作和数学函数。它是许多其他数据分析和科学计算包的基础。NumPy 官网 http://www.numpy.org/

SciPy:在 NumPy 的基础上构建,提供了一套用于科学和工程应用的数学算法。它包括模块用于优化、线性代数、积分、插值、特殊函数、快速傅立叶变换、信号和图像处理等。SciPy 官网:https://www.scipy.org/

Matplotlib:是一个绘图库,提供了大量的绘图函数用于创建静态、动态、交互式的图形和数据可视化,可以帮助用户创建各种类型的图形,包括折线图、散点图、柱状图、饼图等。顺便提示一种情况,使用matplotlib安装成功,但使用时提示:…… ImportError: DLL load failed while importing _cext: 拒绝访问。出现这个错误有可能遇到了权限问题。你可以尝试以管理员身份启动你的Python。

Matplotlib 官网:https://matplotlib.org/

Matplotlib中文网 https://www.matplotlib.net  

NumPy、SciPy 和 Matplotlib 都是开源项目,这意味着它们是免费的,而且社区支持强大。

Matplotlib 通常与 NumPy 和 SciPy 一起使用,因为它们通常是科学计算和数据可视化的一部分。有时,单独安装 matplotlib 可能会因为缺少依赖项而导致问题。同时安装这些库可以确保它们之间的兼容性,并且可以避免一些潜在的依赖冲突。下面是一个基本的命令行示例,用于同时安装这三个库:

pip install numpy scipy matplotlib】

NumPy基本用法(注意使用时全部小写numpy):

import numpy as np

# 创建一个一维数组

arr1 = np.array([1, 2, 3, 4, 5])

# 创建一个二维数组

arr2 = np.array([[1, 2, 3], [4, 5, 6]])

# 使用arange函数创建一个数组

arr3 = np.arange(10)

# 对数组进行基本的数学运算

arr4 = arr2 + 2

arr5 = arr2 * 3

# 计算数组的平均值

mean_value = np.mean(arr1)

mean_value2 = np.mean(arr2)

# 创建一个线性序列数组,从0开始,到10结束,步长为2

arr6 = np.arange(0, 10, 2)

运行参见下图:

顺便提示:NumPy 提供了一个名为 ndarray 的强大数组对象,它可以表示任意维度的数组。对于矩阵操作,我们通常使用二维的 ndarray,它可以被视为行和列的集合。 NumPy 也提供了一个名为 matrix 的专门的矩阵类,但它并不推荐使用,已经宣布在未来的版本中可能会弃用 matrix 类因为 matrix 类仅限于二维且可能在未来的版本中被弃用。相反,NumPy 鼓励使用常规的 ndarray 对象,因为它们更通用且功能更强大。

下面是一个使用numpy库和Python自带的标准库来模拟掷骰子游戏的示例。

在这个例子中,我们将模拟掷两个六面骰子10000次,并计算两个骰子之和的分布情况。源码如下:

import numpy as np

# 设置随机种子以获得可重复的结果
np.random.seed(0)

# 模拟掷骰子
num_rolls = 10000
dice1 = np.random.randint(1, 7, size=num_rolls)  # 生成第一个骰子的结果
dice2 = np.random.randint(1, 7, size=num_rolls)  # 生成第二个骰子的结果
sum_of_dice = dice1 + dice2  # 计算两个骰子之和

# 计算和的分布情况
sums, counts = np.unique(sum_of_dice, return_counts=True)

# 打印结果
for sum_, count in zip(sums, counts):
    print(f"Sum of {sum_}: {count} times")

运行效果:

这个示例展示了numpy的几个关键功能:

np.random.randint: 生成一定范围内的随机整数。

np.random.seed: 设置随机种子以确保每次运行代码时获得相同的随机数序列。

np.unique: 找出数组中所有不同的值,并返回这些不同值及其在原数组中出现的次数。

这个简单的模拟可以帮助我们理解随机事件的概率分布。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/352456.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游戏设计模式

单列模式 概念 单例模式是一种创建型设计模式,可以保证一个类只有一个实例,并提供一个访问该实例的全局节点。 优点 可以派生:在单例类的实例构造函数中可以设置以允许子类派生。受控访问:因为单例类封装他的唯一实例&#xf…

学习笔记-李沐动手学深度学习(五)(14-15,数值稳定性、模型初始化和激活函数、Kaggle房价预测)

总结 14-数值稳定性(梯度爆炸、梯度消失) 尤其是对于深度神经网络(即神经网络层数很多),最终的梯度就是每层进行累乘 理论 t:为第t层 y:不是之前的预测值,而是包括了损失函数L …

统一聚合支付系统一个支付系统包含微信支付宝支付接口可对外提供多个网站使用同一个支付系统的初探与逻辑图

#聚合支付# #小李子9479# 开发背景 作为一个合格的站长或者运营,基本上都有好几个网站,而变现的方式其中之一就是付费。经常使用的付费包含微信支付和支付宝支付。微信的jsapi支付需要使用到openid,而获取openid需要设置授权域名&#xff…

C#用TimeSpan的Days、Hours、Minutes及Seconds属性确定程序的运行时间

目录 一、TimeSpan结构的Days、Hours、Minutes及Seconds属性 1.Days属性 2.Hours属性 3.Minutes属性 4.Seconds属性 二、确定程序运行时间的方法 1.实例源码 2.生成效果 在程序设计过程中,经常需要在主窗体中动态地显示程序的运行时间。 一、TimeSpan结构的…

【Linux】-同步互斥的另一种办法-信号量

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

身份证也可以cisa远程考试

CISA CISM CRISC CGEIT ​只有身份证 ​没有护照 ​没有港澳通行证 ​也可以线上考试

python学习20

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

object detection的一些pre trained模型(视频可以实现一下)

https://www.youtube.com/watch?v2yQqg_mXuPQ 你的支持是我创作的源泉

CC++内存管理【非常详细,对新手友好】

文章目录 一、程序内存划分1.基础知识2. 堆栈的区别3. 题目练手 二、C语言中动态内存管理方式三、C中动态内存管理方式1. new/delete操作内置类型2. new/delete操作自定义类型 四、operator new和operator delete函数1. 汇编查看编译器底层调用2. 透过源码分析两个全局函数 五、…

老旧小区火灾频发,LoRa无线系统筑牢安全防线

近日,全国各地多个老旧小区火灾事故频发,从安微合肥南二环一老旧小区居民楼起火、上海金山区一小区居民楼火灾,到1月24日江西新余市特大火灾......都造成了不同程度的人员伤亡和财产损失,令人扼腕痛惜,教训十分深刻。 …

浅谈 ts的类型校验 经验分享

经验1&#xff1a; 【input"testVal $event.target.value"】会有一个ts报错&#xff1a;【“$event.target”可能为 “null”。】我们可以使用【input"testVal (<HTMLInputElement>$event.target).value"】解决ts报错<input type"text&quo…

C#-前后端分离连接mysql数据库封装接口

C#是世界上最好的语言 新建项目 如下图所示选择框红的项目 然后新建 文件夹 Common 并新建类文件 名字任意 文件内容如下 因为要连接的是mysql数据库 所以需要安装 MySql.Data.MySqlClient 依赖; using MySql.Data.MySqlClient; using System.Data;namespace WebApplication1.…

【Image captioning】论文阅读八—ClipCap: CLIP Prefix for Image Captioning_2021

中文标题&#xff1a;ClipCap: CLIP前缀用于图像描述&#xff08;ClipCap: CLIP Prefix for Image Captioning&#xff09; 文章目录 1. 介绍2. 相关工作3. 方法3.1 综述3.2 语言模型微调3.3 映射网络架构3.4 推理 4. 结果5. 结论 摘要&#xff1a;图像描述是视觉语言理解中的…

黑群晖屏蔽更新

黑群晖屏蔽更新 修改Host删除控制面板的红点和更新提示 修改Host ssh连接群晖后执行以下命令 sudo vim /etc/hosts按i键进入编辑模式 光标移动定位到最后一行后追加以下两行 127.0.0.1 update.synology.com 127.0.0.1 update7.synology.com按esc键&#xff0c;然后输入:wq并…

Nginx进阶篇【四】

Nginx进阶篇【四】 六、Nginx负载均衡6.1.负载均衡概述6.2.负载均衡的原理及处理流程6.3.负载均衡的作用6.4.负载均衡常用的处理方式6.4.1.方式一:用户手动选择6.4.2.方式二:DNS轮询方式6.4.2.1.DNS6.4.2.2.为某一个域名添加的IP地址&#xff0c;用2台服务器来做负载均衡6.4.2.…

ROS2学习笔记(0)开坑声明

0.前提 在做racecar的过程中发现已经有不少的开发者和公司开始从ros1转向ros2的怀抱了&#xff0c;刚好寒假在家&#xff0c;我就顺带试试看能不能学点ros2&#xff0c;刚好我有两辆车和主板可以双线开工&#xff08;是的&#xff0c;全是老师们赞助的&#xff0c;真的我哭死&…

Java面试题之序列化和反序列化

Java面试题之序列化和反序列化 文章目录 Java面试题之序列化和反序列化序列化和反序列化什么是序列化?什么是反序列化?如果有些字段不想进行序列化怎么办&#xff1f;常见序列化协议有哪些&#xff1f;为什么不推荐使用 JDK 自带的序列化&#xff1f; 文章来自Java Guide 用于…

Python初学者学习记录——python基础综合案例:数据可视化——地图可视化

一、基础地图使用 1、基础地图演示 2、基础地图演示——视觉映射器 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts# 准备地图对象 map Map() # 准备数据 data [("北京市", 99),("上海市", 199),("湖南省", 2…

stable-diffusion-webui 汉化(中文界面)

大家好&#xff0c;我是水滴~~ 本文主要介绍 Stable Diffusion WebUI 是如何汉化的&#xff0c;文章详细的介绍汉化过程&#xff0c;并加上配图能够清晰的展示该过程。 Stable Diffusion WebUI 官方并没有出中文界面&#xff0c;需要通过安装插件来汉化&#xff0c;下面是详细…

MySQL-进阶-SQL优化

一、insert优化 插入大量数据 二、主键优化 1、数据组织方式 2、页分裂 3、页合并 4、逐渐设计原则 三、order by优化 四、group by优化 五、limit优化 六、count优化 七、update优化