首页 > 编程语言 >python/NumPy库的使用

python/NumPy库的使用

时间:2024-10-09 13:17:53浏览次数:10  
标签:python data print 数组 使用 np array NumPy

1.NumPy的主要特点:

  1. 高性能的多维数组对象:NumPy的核心是ndarray,它是一个高性能的多维数组对象。
  2. 广播功能:NumPy提供了广播(broadcasting)功能,允许不同形状的数组进行数学运算。
  3. 集成C/C++代码:NumPy可以无缝集成C/C++代码,提高性能。
  4. 广泛的数学函数库:提供了大量的数学函数,包括线性代数、傅里叶变换、随机数生成等。
  5. 节省内存:NumPy的数组比Python原生的列表更加节省内存。

2.安装NumPy:

你可以通过pip命令安装NumPy:

pip install numpy

3.NumPy的基本使用:

  1. 创建数组:

请注意:NumPy创建的数组与默认创建的数组类型不同

默认创建数组类类位:list

 NumPy创建的数组类型为:numpy.ndarray

ata1 = np.arange(15).reshape(5,3)
print(data1)
#创建10个元素的数组,默认填充0
print(np.zeros(10)) # 一维数组
print(np.zeros((2,5))) # 二维数组
print(np.zeros((2,3,4))) # 三维数组
#创建10个元素的数组,默认填充1
print(np.ones(10))# 一维数组
print(np.ones((2,5)))# 二维数组
print(np.ones((2,3,4)))# 三维数组

print(np.empty((1,2,3)))#创建三维数组开辟空间占位先不给值

 2.类型转换

改例子将int类型转换为float64

# 引入numpy依赖
import numpy as np

data = np.array([1,2,3,4,5,6])
#输出数据类型
print(data.dtype)
#类型转换
data = np.array([1,2,3,4,5,6],dtype=np.float64)
print(data.dtype)

 4.NumPy的切片操作

import numpy as np


#索引和切片用于获取数组中部分(区间)的数据
data = np.array([1,2,3,4,5,6])
print(data)
#获取数组4的值,通过下标值指向要获取的数据,下标值由0开始至无限大
print(data[3])
#负数从右侧数。通常情况用于获取最后一个数据
print(data[-1])

#二维数组
data = np.arange(14).reshape(2,7)
print(data)
print(data[0,4])
print(data[-1,-1])

#三维数组
data = np.arange(30).reshape(2,3,5)
print(data)
print(data[1,0,0])
print(data[0][-1][-1],data[1][-1][-1])
#切片
#一维数组
data = np.array([1,2,3,4,5,6])
#a~b ,a<=x<b
print(data[0:3])
print(data[2:])
print(data[:4])
print(data[:-2])
#二维数组
data = np.arange(14).reshape(2,7)
print(data)
#参数1:行参数
#参数2:列参数
print(data[1:,:3])
print(data[:,3:4])
print(data[1:,3:4])
#三维数组
data = np.arange(30).reshape(2,3,5)
print(data)
print(data[0:1,0:2])

5.NumPy数学运算

import numpy as np

a = np.random.random(10000)*10
b = np.random.random(10000)*10
print(a)
print(b)

print(a+b)
print(np.add(a,b))

print(a-b)
print(np.subtract(a,b))

print(a/b)
print(np.divide(a,b))

# ang = np.array([0,30,45,60,90,120,135,150,180])
# rad = np.sin(ang*np.pi/180)
# print(rad)
#统计运算
data = np.array([1,2,3,4,5])
#均值
print(data.mean())
print(np.average(data))
#配置权重
print(np.average(data,weights=np.array([2,2,1,1,1])))
print(np.average(data,weights=np.array([1,1,1,2,3])))
#中位数
print(np.median(data))
#方差
print(np.var(data))
#标准差
print(np.std(data))
#聚合运算
#累加
print(np.sum(data))
#累乘
print(np.prod(data))
#最大值
print(np.max(data))
#最小值
print(np.min(data))

data = np.array([1,2,3,4,5])
#筛选·排序
#输出选中数据的下标值
print(np.where(data>3))
print(np.where(data<3))
#排序
print(np.sort([5,3,7,9,1,4,2,3,6,8]))

*更多运算方法: 

  1. 创建随机数组

    • a 和 b 是通过 np.random.random(10000)*10 创建的包含10000个元素的随机数组,每个元素的值在0到10之间。
  2. 数组加法

    • a+b 直接使用加号运算符对两个数组进行逐元素相加。
    • np.add(a, b) 使用NumPy的 add 函数进行逐元素相加,结果与直接使用加号相同。
  3. 数组减法

    • a-b 使用减号运算符对两个数组进行逐元素相减。
    • np.subtract(a, b) 使用NumPy的 subtract 函数进行逐元素相减。
  4. 数组除法

    • a/b 使用除号运算符对两个数组进行逐元素相除。
    • np.divide(a, b) 使用NumPy的 divide 函数进行逐元素相除。
  5. 数组的三角函数

    • 注释掉的代码 ang = np.array([0,30,45,60,90,120,135,150,180]) 创建了一个包含角度的数组。
    • rad = np.sin(ang*np.pi/180) 将角度转换为弧度并计算每个角度的正弦值。
  6. 统计运算

    • data.mean() 计算数组 data 的均值。
    • np.average(data) 计算数组 data 的平均值,与 mean() 功能相同。
    • np.average(data, weights=np.array([2,2,1,1,1])) 计算加权平均值,权重数组为 [2,2,1,1,1]
    • np.average(data, weights=np.array([1,1,1,2,3])) 计算另一个加权平均值,权重数组为 [1,1,1,2,3]
    • np.median(data) 计算数组 data 的中位数。
    • np.var(data) 计算数组 data 的方差。
    • np.std(data) 计算数组 data 的标准差。
  7. 聚合运算

    • np.sum(data) 计算数组 data 的总和。
    • np.prod(data) 计算数组 data 的元素乘积。
    • np.max(data) 找出数组 data 的最大值。
    • np.min(data) 找出数组 data 的最小值。
  8. 筛选和排序

    • np.where(data>3) 返回数组 data 中大于3的元素的索引。
    • np.where(data<3) 返回数组 data 中小于3的元素的索引。
    • np.sort([5,3,7,9,1,4,2,3,6,8]) 对列表 [5,3,7,9,1,4,2,3,6,8] 进行排序。

标签:python,data,print,数组,使用,np,array,NumPy
From: https://blog.csdn.net/ededabo/article/details/142773485

相关文章

  • 基于python+flask框架的研招信息管理和预测系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育普及率的提升和就业竞争的加剧,越来越多的学生选择继续深造,报考研究生的人数逐年攀升。然而,研究生招生信息的管理和获取却面临......
  • 基于python+flask框架的中医古方名方信息管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景中医作为中华民族的传统医学,承载着千年的智慧与经验。在浩瀚的中医典籍中,古方名方犹如璀璨的星辰,闪烁着独特的光芒。这些古方名方不仅蕴含......
  • 基于python+flask框架的医院门诊预约挂号系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着医疗技术的不断进步和人们健康意识的日益增强,医院门诊的就诊需求呈现出快速增长的趋势。传统的挂号方式往往存在排队时间长、挂号效率......
  • SonarQube的安装与使用
    SonarQube的安装与使用 一、说明:SonarQube7.8以上只支持jdk11版本并且不支持mysql数据库本次安装为Windows环境版本信息如下:1、sonarqube        —7.72、Sonar-scanner-cli   —4.5.03、Postgre           —10.1 二、解压附件中的sonar......
  • 深入理解Python的生成器与迭代器:编写高效的代码
    深入理解Python的生成器与迭代器:编写高效的代码在Python编程中,生成器(Generators)和迭代器(Iterators)是编写高效代码的重要工具。它们帮助我们节省内存、优化性能,尤其在处理大数据时表现尤为出色。这篇博客将深入探讨生成器与迭代器的工作原理、如何使用它们编写高效代码,并通......
  • Python爬虫爬取快手视频代码
    importpprintimportrequestsimportosimportreimportjsondefget_response(url,keywords,pcursor):hearders={‘Accept’:‘/’,‘Accept-Encoding’:‘gzip,deflate,br’,‘Accept-Language’:‘zh-CN,zh;q=0.9’,‘Connection’:‘keep-alive’,......
  • CMake使用
    构建目标和属性projectproject(<项目名称>[<编程语言>...])project(<项目名称>[VERSION<主版本号>[.<次版本号>[.<补丁版本号>[.<修订版本号>]]]][DESCRIPTION<项目描述>][HOMEPAGE_URL]<项目主页URL>[LANGUAGES<编程语......
  • [Java]多个参数的非空判断,不要再使用多个if挨个判断了!(多参数非空判断技巧)
    先上示例代码:if(StringUtils.isAnyBlank(form,to,subject,content)){log.error("发送人,接收人,主题,内容均不可为空");returnResponseResult.error("发送人,接收人,主题,内容均不可为空")}StringUtils.isAnyBlank是Apache......
  • Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控
    Docker环境下GPU监控实战:使用Prometheus实现DCGMExporter部署与GPU性能监控文章目录Docker环境下GPU监控实战:使用Prometheus实现DCGMExporter部署与GPU性能监控一查看当前GPU信息二dcgm-exporter部署1)Dockerrun运行2)Dockercompose运行三......
  • 【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(上篇)
    本篇会加入个人的所谓鱼式疯言❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......