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

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.xdnf.cn/news/1557796.html

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

相关文章

DAMA数据管理知识体系(第7章 数据安全)

课本内容 7.1 引言 概要 数据安全包括安全策略和过程的规划、建立与执行,为数据和信息资产提供正确的身份验证、授权、访问和审计数据安全来源要求 利益相关方政府法规特定业务关注点合法访问需求合同义务语境关系图 图7-2 语境关系图:数据安全业务驱动因…

微信小程序python+uniapp毕业论文选题系统设计与实现 lj141

目录 项目介绍具体实现截图开发者工具介绍技术路线性能/安全/负载方面开发语言以及框架介绍python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取 项目介绍 考虑到实际生活中在毕业论文选题管理方面的需要以及对该系统认真的分析,将小程序权限按管…

探索循环神经网络RNN:解锁序列数据的奥秘

在这个数据驱动的时代,机器学习模型已经深入到我们生活的方方面面,从智能推荐系统到自然语言处理,无一不彰显其强大的能力。在众多模型中,循环神经网络(Recurrent Neural Network, RNN)以其独特的结构和对序…

STM32-HAL库 驱动DS18B20温度传感器 -- 2024.10.8

目录 一、教程简介 二、驱动理论讲解 三、CubeMX生成底层代码 四、Keil5编写代码 五、实验结果 一、教程简介 本教程面向初学者,只介绍DS18B20的常用功能,但也能满足大部分的运用需求。跟着本教程操作,可在10分钟内解决DS18b20通信难题。…

基于uniapp+django微信小程序 食品安全信息管理系统

目录 项目介绍具体实现截图开发者工具介绍技术路线性能/安全/负载方面开发语言以及框架介绍python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取 项目介绍 食品安全信息管理系统设计的目的是为用户提供食品信息、科普专栏、食品检测、检测结果、交…

Chromium 中js Fetch API接口c++代码实现(二)

Chromium 中JavaScript Fetch API接口c代码实现(一)-CSDN博客 接着上一篇继续介绍调用,上函数堆栈。 1、打开http://192.168.8.1/chfs/shared/test/test02.html 此标签进程ID12484, 2、打开vs附加上此进程ID12484 3、点击页面测…

Java--IO高级流

缓冲流 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,Buf…

用友Yonbuilder 平台使用教程序

用友Yonbuilder 平台使用教程 目录概述需求: 设计思路实现思路分析 免费下载参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,c…

环形链表(c语言)

1.//环形链表 //输入:head [3,2,0,-4], pos 1 //输出:true //解释:链表中有一个环,其尾部连接到第二个节点。 //输入:head [1, 2], pos 0 //输出:true //解释:链表中有一个环,其…

【机器学习】线性回归算法简介 及 数学实现方法

线性回归 简介 利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。 数学公式: ℎ_(w) w_1x_1 w_2x_2 w_3x_3 … b w^Txb 概念 ​ 利用回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关…

AI先驱荣获2024诺贝尔物理学奖

瑞典皇家科学院10月8日宣布,将2024年诺贝尔物理学奖授予John J. Hopfield和Geoffrey E. Hinton,以表彰他们利用人工神经网络实现机器学习的奠基性发现和发明。 John J. Hopfield(约翰J霍普菲尔德)美国新泽西州普林斯顿大学 Geoff…

新型僵尸网络针对 100 个国家发起 30 万次 DDoS 攻击

近日,网络安全研究人员发现了一个名为 Gorilla(又名 GorillaBot)的新僵尸网络恶意软件家族,它是已泄露的 Mirai 僵尸网络源代码的变种。 网络安全公司 NSFOCUS 在上个月发现了这一活动,并称该僵尸网络在今年 9 月 4 日…

2024 Mysql基础与进阶操作系列之MySQL触发器详解(20)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️ MYSQL REDIS Advance operation 专栏跑道二➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️HCIP;H3C-SE;CCIP——…

Elasticsearch、Kibana学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

ViT(Vision Transformer详解)

Transformer作为前沿的深度学习框架,带有多模态的特性,对于不同类型的输入数据,不管是文本还是图像均可进行处理,而ViT则是对于Transformer中的视觉方面(也就是输入数据为图像)的衍生物(因Trans…

知识改变命运 数据结构【优先级队列(堆)】

优先级队列(堆) 1:堆概念2:堆的创建(以小根堆为例)3:堆的插入与删除3.1 堆的插入3.2堆的删除 4:oj练习5:堆排序6接口介绍(底层代码的查看)6.1常用三种构造方法 前言:队列…

Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式

单机模式 单机模式是Hadoop最简单的运行模式。在单机模式下,所有Hadoop组件都运行在单个机器上,包括HDFS、MapReduce等。由于只有一个节点参与计算,单机模式适用于开发和测试阶段,不适合用于处理大规模数据。在单机模式下&#xf…

攻防世界----->Replace

前言:做题笔记。 下载 查壳。 upx32脱壳。 32ida打开。 先运行看看: 没有任何反应? 猜测又是 地址随机化(ASLR)---遇见过。 操作参考: 攻防世界---->Windows_Reverse1_dsvduyierqxvyjrthdfrtfregreg-CSDN博客 然后…

UGUI(现成组合控件)

Drop Down Scroll View Scroll Bar size是滚动条的填充程度 Slider 如果设置为静态,那么传入的值始终为自己设置的那个值 Input Field content type为standard时 可以设置line type, 只读不改,就是可以复制,但是你已经不能输入了…

使用.mdf及.ldf恢复SQL SERVER数据库

文章目录 [toc]1.使用.mdf和对应的.ldf文件恢复数据库1.1 将对应的.mdf和.ldf复制到SQL SERVER路径下1.2 打开SSMS 1.使用.mdf和对应的.ldf文件恢复数据库 1.1 将对应的.mdf和.ldf复制到SQL SERVER路径下 一般默认路径是:C:\Program Files\Microsoft SQL Server\MS…