python数据分析与可视化工具介绍-numpy库

news2024/10/10 15:30:28

NumPy(Numerical Python的简称),是科学计算基础的一个库,提供了大量关于科学计算的相关功能,例如,线性变换,数据统计,随机数生成等。其提供的最核心的类型为多维数组类型(ndarray)。本文主要介绍了第三方库NumPy的相关操作。其中对数组的操作如创建多种特殊数组的以及简单操作和自带函数的使用是关键内容。

一  numpy介绍

主要功能和特点:

  1. 多维数组对象(ndarray)

    • NumPy的核心是ndarray(n-dimensional array)对象,它是一种快速的、灵活的、具有高性能的多维数组,可以用于存储同类型的数值数据。
  2. 数组操作

    • NumPy提供了丰富的功能,支持数组的基本操作,如数学运算、逻辑运算、统计运算等,可以对数组进行元素级的操作。
    • 数组可以通过广播(broadcasting)机制进行操作,使得数组在不同形状下也能进行计算。
  3. 切片和索引

    • NumPy支持灵活的数组切片和索引操作,可以轻松提取子数组、修改数组元素等。
  4. 线性代数

    • NumPy提供了线性代数相关的函数,如矩阵乘法、特征值计算、奇异值分解等,方便进行高效的数学计算。
  5. 随机数生成

    • NumPy里面有一个强大的随机模块,可以生成各种分布的随机数,比如均匀分布、正态分布等,非常适合于模拟和数据分析。
  6. 文件输入输出

    • NumPy支持读取和写入多种格式的数值数据文件,如文本文件、二进制文件、CSV等,方便与其他数据源的交互。
  7. 与其他库的兼容性

    • NumPy是许多其他科学计算库(如SciPy、Pandas、Matplotlib等)的基础,确保了它能够与这些库良好集成。

二 如何使用

首先需要安装库,当我们安装好python3之后,可以使用以下命令安装numpy库

pip install numpy

接下来代码演示如何创建数组和基本运算:

import numpy as np  

# 创建一个一维数组  
a = np.array([1, 2, 3, 4])  
print("一维数组:", a)  

# 创建一个二维数组  
b = np.array([[1, 2], [3, 4]])  
print("二维数组:\n", b)  

# 数组运算  
c = a + 5  # 所有元素加5  
print("数组加5:", c)  

d = b * 2  # 所有元素乘以2  
print("二维数组乘2:\n", d)  

# 矩阵乘法  
e = np.dot(b, b)  # 矩阵乘法  
print("矩阵乘法:\n", e)  

# 计算数组的均值  
mean_a = np.mean(a)  
print("一维数组的均值:", mean_a)

numpy几个常用的方法

1. 创建数组的方法

  • np.array(): 创建一个NumPy数组

    import numpy as np arr = np.array([1, 2, 3, 4])

  • np.zeros(): 创建一个全零数组

    zeros_array = np.zeros((3, 4)) # 3行4列的数组

  • np.ones(): 创建一个全一数组

    ones_array = np.ones((2, 3)) # 2行3列的数组

  • np.arange(): 创建一个均匀分布的数组

    arr = np.arange(0, 10, 2) # 从0到10步长为2

  • np.linspace(): 创建一个指定范围的均匀间隔数组

    arr = np.linspace(0, 1, 5) # 在0到1之间生成5个值

2. 数组操作方法

  • ndarray.shape: 获取数组的形状

    shape = arr.shape # 返回数组的形状

  • ndarray.reshape(): 修改数组的形状

    reshaped_arr = arr.reshape(2, 2) # 将数组重塑为2行2列

  • ndarray.flatten(): 将多维数组展平为一维数组

    flat_arr = arr.flatten()

  • ndarray.transpose(): 转置数组

    transposed_arr = b.T # 对二维数组b进行转置

3. 统计方法

  • np.mean(): 计算平均值

    mean_value = np.mean(arr)

  • np.median(): 计算中位数

    median_value = np.median(arr)

  • np.std(): 计算标准差

    std_dev = np.std(arr)

  • np.sum(): 计算数组的和

    total = np.sum(arr)

4. 数组运算

  • ndarray + 10: 所有元素加10

    new_arr = arr + 10

  • np.dot(): 矩阵乘法

    result = np.dot(a, b) # a和b进行矩阵乘法

  • np.add(): 逐元素加法

    c = np.add(arr1, arr2)

  • np.multiply(): 逐元素乘法

    d = np.multiply(arr1, arr2)

5. 逻辑操作

  • np.where(): 根据条件返回数组元素的索引

    indices = np.where(arr > 2) # 返回大于2的元素的索引

  • ndarray.any(): 检查是否至少有一个元素为True

    has_positive = (arr > 0).any()

  • ndarray.all(): 检查是否所有元素都为True

    all_positive = (arr > 0).all()

6. 文件输入输出

  • np.loadtxt(): 从文本文件加载数据

    data = np.loadtxt('data.txt')

  • np.savetxt(): 将数组保存到文本文件

    np.savetxt('output.txt', arr)

三 numpy结合matploatlib生成一个工资折线图图形,代码如下:


import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

# 去年的工资
last_year = np.random.randint(4000,6000,12)
print(last_year)
# 今年的工资
this_year = np.random.randint(5000,7000,12)
print(this_year)
plt.plot(range(1,13),last_year,marker='o',label='2023')
plt.plot(range(1,13),this_year,marker='x',label='2024')
# 2022的工资
year1=[4500,4600,4702,4789,4800,4750,4600,4390,4200,5000,5500,5900]
plt.plot(range(1,13),year1,marker='>',label='2022')
plt.legend(loc=1,title='我的工资',ncol=1)

plt.xticks([1,2,3,4,5,6,7,8,9,10,11,12])
plt.xlabel('月份')

plt.yticks([4000,4500,5000,5500,6000,6500,7000])
plt.ylabel('工资')

# 表格线
plt.grid(True,color='g',linestyle='-.')
plt.show()

运行的结果如下图:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio 打包混淆失效问题

项目场景: 通过 Python 脚本运行打包 Apk ,实现动态配置各个版本的 Apk。 问题描述 通过 Python 脚本打包编译 Apk,开启混淆后,打包成功,反编译出来的 Apk 并没有被混淆。 原因分析: 首先确认打包混淆…

矩阵系统源码搭建,oem贴牌,技术指导

一、技术选型与整合 多种技术的融合 矩阵系统通常需要整合多种技术,包括前端技术、后端技术、数据库技术、服务器技术等。选择合适的技术栈并确保它们能够良好地协同工作是一个挑战。例如,前端可能使用 React 或 Vue.js,后端可能使用 Java Sp…

聚观早报 | 台积电9月份营收;联发科发布天玑9400

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 10月10日消息 台积电9月份营收 联发科发布天玑9400 vivo X200系列将全系标配原子岛 骁龙8 Gen4或改名“骁龙8至尊…

[ComfyUI]看惯AI味女神,回归现实,聊聊去AI胶皮味现实真人写真

随着人工智能技术的飞速发展,图像生成与反推技术已经取得了显著的进展。然而,有时候我们也会怀念那些真实、自然的人像照片。今天,我们为您带来了一篇关于[ComfyUI]如何拍摄去AI胶皮味现实真人写真的文章,帮助您回归现实&#xff…

Redis:分布式 - 哨兵

Redis:分布式 - 哨兵 概念哨兵 Docker 搭建哨兵分布式选举流程 概念 Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模…

美发店管理升级:SpringBoot技术实现

3系统分析 3.1可行性分析 通过对本美发门店管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本美发门店管理系统采用SSM框架,JAVA作为开发语…

产业园区数字化转型:破解传统园区发展瓶颈

在当今数字化浪潮汹涌澎湃的时代,传统产业园区面临着诸多发展瓶颈,而产业园区数字化转型成为了突破这些困境的关键路径。 传统产业园区往往存在着管理效率低下、资源配置不合理、企业间协同困难以及创新能力不足等问题。这些问题就像一道道枷锁&#xf…

胃阴亏则百病生!阴虚火旺、胃病多发、灼痛?秋冬滋补季,用“仙草”养养胃~

中国有句俗话“十人九胃”,现代社会作息混乱、饮食无度,胃病的患病率也变得越来越高。 经常熬夜,饮食不规律,暴饮暴食,肠胃不适,面色差~ 喜食辛辣,总吃烧烤,烘烤、辛辣热性的食物&…

线下旅行社增长:单品牌半年新开500家门店,净利润增幅超307%

实体门店集体下行,旅行社缘何能越开越多 前言 线上流量井喷背景下,旅游业却“反其道而行”,重燃线下旅行社战火。 文化和旅游部市场管理司今年9月发布的《2024年第二季度全国旅行社统计调查报告》显示,截至2024年6月30日&#…

WPF中的常用控件

控件分类 在第一篇文章.Net Core和WPF介绍中的WPF的功能和特性部分根据功能性介绍了WPF的控件 名称。 在接下来的文章中,将会详细的介绍各个控件的概念及使用。 主要包括: 内容控件:Label、Button、CheckBox、ToggleButton、RadioButton、…

Large AI Model Empowered Multimodal Semantic Communications——基于大模型的多模态语义通信框架

1. 背景 本文讨论了大规模AI模型在多模态语义通信(SC)系统中的应用,处理不同类型的数据(文本、音频、图像、视频)以实现低延迟、高质量的语义层次通信。提出了一个基于大模型的多模态SC(LAM-MSC&#xff09…

心理学基础

一,三观 三观包括世界观、人生观、价值观。 1,世界观 世界观‌是人们对整个世界的总的看法和根本观点。可以划分为两种根本对立的世界观类型,即唯心主义世界观和唯物主义世界观。 2,人生观 人生观是人们在实践中形成的对于人…

[C高手编程] C语言数据结构:排序算法与查找算法

💖💖⚡️⚡️专栏:C高手编程-面试宝典/技术手册/高手进阶⚡️⚡️💖💖 「C高手编程」专栏融合了作者十多年的C语言开发经验,汇集了从基础到进阶的关键知识点,是不可多得的知识宝典。如果你是即将…

开发一个exe应用工具,pdf转图片工具,pdf截成单个图片,然后全量修整没用的白边

pdf转图片工具 图片裁剪白边工具 window系统exe应用工具下载地址https://download.csdn.net/download/websmallrabbit/89864476如果有帮助到您还请动动手帮忙点赞,关注,评论转发,感谢啦!💕💕💕&…

记一次详细的实战渗透

声明:本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。 前言 一次授权的渗透测试,过程比较详细,充满了巧合,也算比较有意思直接记录一下&a…

SpringBoot访问web中的静态资源

SpringBoot访问web中的静态资源,有两个方式: 1、SpringBoot默认指定了一些固定的目录结构,静态资源放到这些目录中的某一个,系统运行后浏览器就可以访问到 ① 关键是SpringBoot默认指定的可以存放静态资源的目录有哪些&#xff…

这几个被淘汰的Python库,请不要再用!

随着每个 Python 版本的发布,都会添加新模块,并引入新的更好的做事方式,虽然我们都习惯了使用好的旧 Python 库和某些做事方式,但现在也时候升级并利用新的和改进的模块及其特性了。 这里插播一条粉丝福利,如果你正在…

图片美化SDK解决方案,赋能H5与小程序极致体验

无论是社交媒体分享、电商产品展示,还是个人日常生活的记录,一张经过精心美化的图片总能瞬间吸引眼球,传递出更加丰富和动人的信息。如何在不增加应用体积、不牺牲用户体验的前提下,为H5页面和小程序提供媲美原生APP的图片美化功能…

二、IOC容器

文章目录 1. IOC的底层原理1.1 什么是IOC1.2 IOC 底层原理1.3 画图讲解 IOC 底层原理 2. IOC接口(BeanFactory)3. IOC 操作 Bean 管理(概念)3.1 什么是Bean管理3.2 Bean管理操作的两种方式 4. IOC操作 Bean 管理(基于 …

go发送邮件:在Go语言中实现发邮件的教程?

go发送邮件的教程指南?怎么使用Go语言发送电子邮件? Go语言,作为一种简洁、高效且并发性强的编程语言,自然也提供了丰富的库来支持邮件发送功能。AokSend将详细介绍如何在Go语言中实现发送邮件的功能,帮助你快速掌握这…