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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

森林防火是保护森林的重要措施,每年发生的森林火灾都严重威胁着自然安全,对社会经济和生态造成严重的破坏。为了切实有效地预防并扑灭森林火灾,森林防火智能储水罐已成为现代森林防火体系中的重要装备。 储水罐内置传感器和控制系统&#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;让脚本变得稳定 设计图如下…

微服务分布式事务

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

sbti科学碳目标倡议是什么

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

问题记录-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…

2024.7.23(DNS正向解析)

回顾&#xff1a; # 安装 samba yum -y install samba # 自建库&#xff0c;只下载&#xff0c;不安装 yum -y install --downloadonly --downloaddir./soft/ # 配置samba vim /etc/samba/smb.conf # 配置 [xxxxxxxname] commentdasdffsffdslfdjsa path/share …

h5点击电话号跳转手机拨号

需要使用到h5的 <a>标签 我们首先在<head>标签中添加代码 <meta name"format-detection" content"telephoneyes"/>然后再想要的位置添加代码 <a href"tel:10086"> 点击拨打&#xff1a;10086 </a> 这样功能就实现…

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架4.4 信息加解密技术-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架 4.3 信息安全系统的组成框架4.3.1 技术体系4.3.1.1 基础安全设备4.3.1.2 计算机网络安全4.3.1.3 操作系统安全4.3.1.4 数据库安全4.3.1.5 终端安全设备4.3.2 组织机构体系4.3.3 管理体系4.4 信息加…

redis命令超详细

redis数据结构介绍 redis是一个key-value的数据库&#xff0c;key一般是String类型&#xff0c;但是value的类型有很多&#xff1a; 基本类型&#xff1a;String,Hash,List,Set,SortedSet(可排序的不能重复的集合) 特殊类型&#xff1a;GEO,BitMap,HyperLog等 文档官网&…

emr部署hive并适配达梦数据库

作者&#xff1a;振鹭 一、达梦 用户、数据库初始化 1、创建hive的元数据库 create tablespace hive_meta datafile /dm8/data/DAMENG/hive_meta.dbf size 100 autoextend on next 1 maxsize 2048;2、创建数据库的用户 create user hive identified by "hive12345&quo…

Android --- 广播

广播是什么&#xff1f; 一种相互通信&#xff0c;传递信息的机制&#xff0c;组件内、进程间&#xff08;App之间&#xff09; 如何使用广播&#xff1f; 组成部分 发送者-发送广播 与启动其他四大组件一样&#xff0c;广播发送也是使用intent发送。 设置action&#xff…

如何在Ubuntu上安装并启动SSH服务(Windows连接)

在日常的开发和管理工作中&#xff0c;通过SSH&#xff08;Secure Shell&#xff09;连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题&#xff0c;可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…