Python -numpy 基础-------1

news2024/9/21 12:36:47

NumPy(Numerical Python)是Python的一个开源数值计算扩展库。它支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy的数组(ndarray)对象是一个快速且灵活的多维数组对象,用于存储相同类型的元素。NumPy提供了用于执行元素级计算以及执行复杂的数学和其他类型的数组操作的函数。

一、安装numpy:

pip install numpy

在终端或命令指示符中输入安装numpy包。

二、NumPy的主要特点:

  1. ndarray对象:NumPy的核心是ndarray对象,这是一个多维数组对象,具有固定大小的同类型元素集合。与Python的内置列表(list)不同,ndarray的元素类型必须是相同的,并且在创建时其大小不可改变(尽管可以重新调整形状)。

  2. 广播(Broadcasting):NumPy的广播功能允许NumPy在执行算术运算时,对不同形状的数组进行操作,而不必显式地创建足够大的数组以匹配另一个数组的形状。

  3. 高效的元素级操作:由于NumPy的数组元素都是同类型的,因此NumPy可以直接在内存中连续存储数据,这使得对数组中的元素进行元素级操作变得非常高效。

  4. 大量的数学函数库:NumPy提供了大量的数学函数,这些函数可以对数组进行操作,如三角函数、指数函数、对数函数等。

  5. 线性代数、傅里叶变换和随机数生成:NumPy还提供了线性代数、傅里叶变换和随机数生成的函数。

三、使用numpy

1.array创建数组:

numpy模块的array函数可以生成多维数组。例如,如果要生成一 个二维数组,需要向array函数传递一个列表类型的参数。每一个列 表元素是一维的ndarray类型数组,作为二维数组的行。另外,通 过ndarray类的shape属性可以获得数组每一维的元素个数(元组形 式),也可以通过shape[n]形式获得每一维的元素个数,其中n是 维度,从0开始。

import numpy as np
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

使用实例:

import numpy as np
#创建一维数组
a = np.array([1, 2, 3, 4, 5, 6])
print(a)
print('a数组的维度:', a.shape)
#创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(b)
print('b数组的维度:', b.shape)
#输出
# [1 2 3 4 5 6]
# a数组的维度: (6,)
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]
# b数组的维度: (3, 3)
a=np.array([1,2,3,4,5,6],ndmin=3)
print(a)
#输出:[[[1 2 3 4 5 6]]] 三维数组
a=np.array([1,2,3,4,5,6],dtype=np.float16)
print(a)
#输出:[1. 2. 3. 4. 5. 6.],浮点型

2.随机数创建

numpy中的random模块包含了很多方法可以用来产生随机数:

1.随机数:

        1.返回[0.0, 1.0)范围的随机数

        2.随机整数

        

import numpy as np
#numpy.random.randint()的使用
#生成 [0,low)范围的随机整数
x=np.random.randint(5,size=10)
print(x)
#生成[low,high)范围的随机整数
y=np.random.randint(5,10,size=10)
print(y)
#生成[low,high)范围的2*4的随机整数
z=np.random.randint(5,10,size=(2,4))
print(z)

2.正太分布
numpy.random.randn(d0,d1,…,dn)

randn函数返回一个或一组样本,具有标准正态分布(期望为0,方 差为1)。 dn表格每个维度 返回值为指定维度的数组

import numpy as np
x=np.random.randn()
print(x)
y=np.random.randn(2,4)
print(y)
z=np.random.randn(2,3,4)
print(z)

        指定期望和方差的正太分布:

#正太分布(高斯分布)loc:期望 scale:方差 size 形
状
print(np.random.normal(loc=3,scale=4,size=
(2,2,3)))

3.ndarray 对象

import numpy as np
x1=np.random.randint(10,size=6)
x2=np.random.randint(10,size=(3,4))
x3=np.random.randn(3,4,5)
print('ndim属性'.center(20,'*'))
print('ndim:',x1.ndim,x2.ndim,x3.ndim)
print('shape属性'.center(20,'*'))
print('shape:',x1.shape,x2.shape,x3.shape)
print('dtype属性'.center(20,'*'))
print('dtype:',x1.dtype,x2.dtype,x3.dtype)
#输出:
# *******ndim属性*******
# ndim: 1 2 3
# ******shape属性*******
# shape: (6,) (3, 4) (3, 4, 5)
# ******dtype属性*******
# dtype: int32 int32 float64
创建ndarray

你可以使用NumPy库中的多种函数来创建ndarray对象,例如:

  • numpy.array():从常规Python对象(如列表、元组等)创建数组。
  • numpy.zeros():创建指定形状和类型的新数组,数组中的所有元素都初始化为0。
  • numpy.ones():创建指定形状和类型的新数组,数组中的所有元素都初始化为1。
  • numpy.empty():创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组,里面的元素的值是之前内存的值:
  • numpy.arange():根据给定的起始值、结束值和步长,返回指定形状和类型的一维数组。
import numpy as np
# 使用numpy.array从列表创建ndarray
arr = np.array([1, 2, 3, 4, 5])
#输出:[1 2 3 4 5]
# 创建一个3x3的零矩阵
zero_matrix = np.zeros((3, 3))
#输出:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]


# 创建一个形状为(2,3)且所有元素为1的数组
ones_array = np.ones((2, 3))
#输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]
# 使用numpy.arange创建一维数组
range_array = np.arange(0, 10, 2)
#输出:[0 2 4 6 8]          

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

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

相关文章

power bi-all 相关函数

power bi-all 相关函数 1. all 函数2. allselected 函数3. allexcept()函数4. allnoblankrow() 函数 1. all 函数 作用: 清除筛选返回:清除筛选后的表格或列总结 当all参数为表时,忽略所有的筛选条件,无论…

github连接不上的解决方案(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

鸿蒙仓颉语言【模块module】

module 模块 模块配置文件,这里指项目的modules.json 文件,用于描述代码项目的基础元属性。 {"name": "file name", //当前项目的名称"description": "项目描述", //项目描述"version": "1.0…

十、Docker版Redis集群搭建

目录 一、3主3从Redis集群配置 1、新建6个docker容器实例 2、进入容器redis-node-1并为6台机器构建集群关系 3、以6381为切入点,查看集群状态 二、主从容错切换迁移案例 1、数据读写存储 2、假如6381宕机了,他的从库6386会不会切换 三、主从扩容案…

(C语言) 文件读写基础

文章目录 🗂️前言📄ref📄访问标记🗃️文件访问标记 🗂️Code📄demo📄分点讲解🗃️打开/关闭🗃️写🗃️读 🗂️END🌟关注我 &#x1f…

Linux-socket详解

前言 OSI七层模型和TCP/IP四层模型在这里就不说了。 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将IO插入到网络中,并与网络…

Nest.js 实战 (四):利用 Pipe 管道实现数据验证和转换

什么是管道(Pipe)? 在 Nest.js 中,管道(Pipelines) 是一种强大的功能,用于预处理进入控制器方法的请求数据,如请求体、查询参数、路径参数等。管道允许开发者在数据到达控制器方法之…

使用GoAccess进行Web日志可视化

运行网站的挑战之一是了解您的 Web 服务器正在做什么。虽然各种监控应用程序可以在您的服务器以高负载或页面响应缓慢运行时提醒您,但要完全了解正在发生的事情,唯一的方法是查看 Web 日志。阅读日志数据页面并了解正在发生的事情可能需要花费大量时间。…

慎用 readFileSync 读取大文件, 教你一招如何优雅处理大文件读取

我们在编写 nodejs 服务的时候,有时候需要使用 fs.readFileSync api 去读取文件,但是使用 fs.readFileSync 会将文件读取在内存中,如果遇到了文件很大时,fs.readFileSync 会占据服务器大量的内存,即使读取的文件比较小…

代发考试战报:7月16号武汉参加HCIP-Transmission传输 H31-341考试通过

代发考试战报:7月16号武汉参加HCIP-Transmission传输 H31-341考试通过,,有2个题好像没见到过,其他都是题库里的原题,题库很准,这个题库也不是一直不变的,也没规律可循什么时候变题,哪…

【TAROT学习日记】韦特体系塔罗牌学习(6)——教皇 THE HIEROPHANT

韦特体系塔罗牌学习(6)——教皇 THE HIEROPHANT 目录 韦特体系塔罗牌学习(6)——教皇 THE HIEROPHANT牌面分析1. 基础信息2. 图片元素 正位牌意1. 关键词/句2.爱情婚姻3. 学业事业4. 人际财富5. 其他象征意 逆位牌意1. 关键词/句2…

PostgreSQL 中如何实现数据的批量插入和更新?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何实现数据的批量插入和更新?一、批量插入数据1. 使用 INSERT INTO 语句结…

PSINS工具箱函数介绍——r2d

介绍工具箱里面r2d这个小函数的作用。 程序源码 function deg r2d(rad) % Convert angle unit from radian to degree % % Prototype: deg r2d(rad) % Input: rad - angle in radian(s) % Output: deg - angle in degree(s) % % See also r2dm, r2dms, d2r, dm2r, dms2r% …

运维锅总详解VLAN

本文介绍了VLAN作用、公司多个部门VLAN举例、VLAN间路由、VLAN协议控制字段解释及工作流程、VLAN历史演进等方面对VLAN技术进行详细分析。希望对您理解VLAN有所帮助! 一、VLAN作用 VLAN(Virtual Local Area Network,虚拟局域网)…

FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频

​ FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频 1、前言2、大概流程3、测试环境4、安装流媒体服务器5、设置流媒体服务器接口6、简单写个web接口7、测试一下1、web播放在线播放器1在线播放器2本地video控件 2、vlc播放vlc播放rtmpvlc播放rtsp 8、总结 1、前…

简过网:公务员公示后是不是就没有问题了?

A:请问,公务员录用考试公示期过后是不是说明就正式录用了? Q:公务员已经公示录用,就说明前期政审已经过关,档案在前期的审查工作中没有发现问题,在入职前,档案会调入组织部&#xf…

10.发布确认

解决消息不丢失的一个重要环节。 前面说过消息持久化,可能出现一种情况就是: 尽管它告诉rabbitmq将消息保存到磁盘,但是依然存在当消息刚准备存储到磁盘的时候,但是还没有存储完,消息还在缓存的一个间隔点。此时消息…

充电桩--交流充电桩硬件原理以及竞品方案

聚焦光伏领域、深耕储能市场、探究充电技术 微信公众号 小Q下午茶 聚焦光伏领域,深耕储能市场,探究充电技术 47篇原创内容 公众号 一、交流充电桩系统介绍 为了实现能源安全和“双碳”目标的达成,充电桩是需要智能电网支持,…

Linux 各目录

Linux 是一个非常严谨的操作系统,每个目录都有自己的作用,这些作用是固定的,没有特殊情况,应严格执行; Linux 中所有东西以文件形式存储和管理,命令也不例外; 以下四个 bin 是二进制文件&…

linux C++ onnxruntime yolov8 视频检测Demo

linux C onnxruntime yolov8 视频检测Demo 目录 项目目录 效果 ​编辑CMakeLists.txt 代码 下载 项目目录 效果 ./yolov8_demo --help ./yolov8_demo -c2 -ptrue ./yolov8_demo -c1 -strue CMakeLists.txt # cmake needs this line cmake_minimum_required(VERSION 3…