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

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.mzph.cn/web/48017.shtml

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

相关文章

编写自动化测试(11)

编写自动化测试 1.如何编写测试1.测试函数剖析1.创建测试库 2.使用 assert! 宏来检查结果3.使用assert_eq! 和 assert_ne!宏来测试相等4.自定义失败信息5.使用should_panic 检查 panic6.将Result<T, E>用于测试 2.控制测试如何运行1.并行或连续的运行测试1.1 精准控制运行…

取消当前的git commit操作

一、取消最近一次提交&#xff08;未推送到远程仓库&#xff09; 使用 git reset 保留工作目录、暂存区&#xff08;即只取消提交&#xff09;不变色 git reset --soft HEAD~1这会将当前分支回退到上一个提交&#xff0c;但保留所有更改在暂存区。 保留工作目录&#xff08…

黑龙江等保测评最新资讯:强化安全基线,赋能数字未来

在黑龙江省&#xff0c;随着数字化转型的不断深化&#xff0c;企业对其信息安全的关注也越来越高&#xff0c;而作为保护信息资产的一个重要环节的等保测评&#xff0c;也面临着新的机遇和挑战。 最新政策动向 最近&#xff0c;有关部门下发了《关于加强网络安全等级保护的指导…

Floyd

Floyd 本质&#xff1a;DP 算法特点&#xff1a;多源最短路&#xff0c;能一次性求解所有点对间的最短距离 适用对象&#xff1a;小图&#xff0c;允许边权为负&#xff0c;无法适用于负环图(负环:环上边权之和为负的环,当任意时刻出现 d p [ i ] [ i ] < 0 dp[i][i]<0…

Spring模块

1 事务注解Transactional 默认的隔离等级&#xff1a;DEFAULT&#xff0c;使用数据库的隔离等级。(读未提交、读已提交、可重复读、串行化、DEFAULT) 默认的传播行为&#xff1a;REQUIRED&#xff0c;有事务则加入当前事务&#xff0c;没有事务则创建一个新的事务 默认的回滚…

基于3D开发引擎HOOPS平台的大型三维PLM系统的设计、开发与应用

产品生命周期管理&#xff08;Product Lifecycle Management&#xff0c;PLM&#xff09;系统在现代制造业中扮演着至关重要的角色。随着工业4.0和智能制造的推进&#xff0c;PLM系统从最初的CAD和PDM系统发展到现在的全面集成、协作和智能化的平台。本文将探讨基于HOOPS平台的…

【python】Numpy运行报错分析:IndexError与形状不匹配问题

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

森林防火,森林防火智能储水罐_鼎跃安全

森林防火是保护森林的重要措施&#xff0c;每年发生的森林火灾都严重威胁着自然安全&#xff0c;对社会经济和生态造成严重的破坏。为了切实有效地预防并扑灭森林火灾&#xff0c;森林防火智能储水罐已成为现代森林防火体系中的重要装备。 储水罐内置传感器和控制系统&#xff…

【CTFWP】ctfshow-web32

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 题目介绍&#xff1a;题目分析&#xff1a;payload&#xff1a;payload解释&#xff1a;flag 题目介绍&#xff1a; <?php/* # -*- coding: utf-8 -*- # Autho…

【每日刷题Day85】

【每日刷题Day85】 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 125. 验证回文串 - 力扣&#xff08;LeetCode&#xff09; 2. 43. 字符串相乘 - 力扣&#xff08;L…

DC系列靶场---DC 2靶场的渗透测试(二)

漏洞利用及探测 rbash逃逸 虽然我们现在已经可以执行切换路径命令了&#xff0c;但是发现还有是很多命令不能用。 我想看看一下目标主机的所有用户&#xff0c;是不能执行的。 那我们就用到了当前shell逃逸。第一种情况&#xff1a;/ 被允许的情况下&#xff1b;直接 /bin/s…

SpringBoot原理解析(二)- Spring Bean的生命周期以及后处理器和回调接口

SpringBoot原理解析&#xff08;二&#xff09;- Spring Bean的生命周期以及后处理器和回调接口 文章目录 SpringBoot原理解析&#xff08;二&#xff09;- Spring Bean的生命周期以及后处理器和回调接口1.Bean的实例化阶段1.1.Bean 实例化的基本流程1.2.Bean 实例化图例1.3.实…

go 协程池的实现

使用场景 这次需求是做一个临时的数据采集功能&#xff0c;为了将积压的数据快速的消耗完&#xff0c;但是单一的脚本消耗的太慢&#xff0c;于是乎就手写了一个简单的协程池&#xff1a; 为了能加快数据的收集速度为了稳定协程的数量&#xff0c;让脚本变得稳定 设计图如下…

数据增强:机器学习中的数据魔法

数据增强&#xff1a;机器学习中的数据魔法 在机器学习领域&#xff0c;数据是模型训练的基石。然而&#xff0c;获取大量高质量的训练数据往往是一个挑战。数据增强技术应运而生&#xff0c;它通过从现有数据中生成新的变体来增加数据集的多样性和丰富性。本文将深入探讨数据…

微服务分布式事务

1、分布式事务是什么&#xff1f; 微服务架构中的分布式事务是指在多个服务实例之间保持数据一致性的机制。由于微服务通常涉及将业务逻辑拆分成独立的服务&#xff0c;每个服务可能有自己的数据库&#xff0c;因此当一个业务操作需要跨多个服务进行时&#xff0c;确保所有服务…

sbti科学碳目标倡议是什么

在科学界、工业界以及全球政策制定者的共同努力下&#xff0c;一个名为“科学碳目标倡议”&#xff08;Science Based Targets initiative&#xff0c;简称SBTi&#xff09;的全球性合作平台应运而生。这一倡议旨在推动企业和组织设定符合气候科学要求的减排目标&#xff0c;以…

2023年国际高校数学建模竞赛

2023年国际高校数学建模竞赛是一项由国际(澳门)学术研究院数学科学研究所、数学建模研究与应用期刊社联合香港数学研究与应用学会主办的国际性学科竞赛&#xff0c;该竞赛已获澳门特别行政区政府澳门基金会&#xff08;行政长官直属&#xff09;立项资助。以下是对该竞赛的详细…

生成式AI未来发展方向充满了无限可能与挑战

生成式AI&#xff0c;作为人工智能领域的一个前沿分支&#xff0c;其未来发展方向充满了无限可能与挑战&#xff0c;将对多个行业产生深远影响。以下是我对生成式AI未来发展方向的几点看法&#xff1a; 技术融合与创新 未来&#xff0c;生成式AI将更加注重与其他技术的深度融合…

问题记录-SpringBoot 2.7.2 整合 Swagger 报错

详细报错如下 报错背景&#xff0c;我将springboot从2.3.3升级到了2.7.2&#xff0c;报了下面的错误&#xff1a; org.springframework.context.ApplicationContextException: Failed to start bean documentationPluginsBootstrapper; nested exception is java.lang.NullPo…

信息收集Part3-资产监控

Github监控 便于收集整理最新exp或poc 便于发现相关测试目标的资产 各种子域名查询 DNS,备案&#xff0c;证书 全球节点请求cdn 枚举爆破或解析子域名对应 便于发现管理员相关的注册信息 通过Server酱接口接收漏洞信息 https://sct.ftqq.com/ https://github.com/easych…