当前位置: 首页 > news >正文

numpy 基础使用

NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

首先引入numpy

import numpy as np

ndarray

NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。

ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。

ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。 下图显示了ndarray,数据类型对象(dtype)和数组标量类型之间的关系。

image-20231112140721397

ndarray常用属性:

属性含义
ndim维度(轴)的个数
shape维度,轴,形状大小
size元素的总个数
dtype元素的数据类型
itemsize元素的字节大小
num = np.random.randn(2,3)
print(num)
print("数据类型:", type(num))
print("维度个数:", num.ndim) # 行数
print("维度大小(n,m):", num.shape)
print("元素总个数:", num.size)
print("元素的数据类型:", num.dtype)
print("元素的字节大小:", num.itemsize)

image-20231112133133273

array函数

array具有以下功能:

  • 将任意的序列对象转换为数组
  • 支持将特定的嵌套序列转换为高维数组
  • 自动推断生成的数据类型
# 将列表转为数组类型
num1 = np.array([1,2,34])
num2 = np.array([ [1,2, 34],[34, 2, 1]])
# 设置元素类型
num3 = np.array([[1,2,34],[34,2,1]
], dtype='float32')print(num1)
print(num2)
print(num3)

image-20231112133849276

zeros函数

用法与array函数相似。创建全0数组,默认元素类型是浮点数类型;使用元组指定创建数组的形状。

# 创建 3行4列的全0矩阵
num = np.zeros((3,4))
print(num)

image-20231112134105447

ones函数

zeros函数一样,只不过是创建全0数组,默认元素类型是浮点数。

# 创建 3行4列的全1矩阵
num = np.ones((3,4))
print(num)

image-20231112134226823

empty函数

创建一个未初始化的数组。元素为内存中不确定值。

# 创建 3行4列的全1矩阵
num = np.empty((3,4))
print(num)

arange函数

arange()类似于python的内置函数range(),通过指定开始值终值步长来创建表示等差数列的一维数组,返回给定间隔内的均匀间隔值,注意得到的结果数组不包含终值

image-20231112134504698

image-20231112134528191

arange()函数有四个个参数,分别是start(开始值)、stop(终值)、step(步长)和dtype(数组类型)。

开始值可选,默认值是0,包含在数组中

终止值必选,不包含在数组中

步长可选,默认是1

# 长度为0到9
num1 = np.arange(10)
print(num1)# 长度为0到9的偶数
num2 = np.arange(0, 10,2)
print(num2)# 长度为0到9的奇数
num3 = np.arange(1,10,2)
print(num3)

image-20231112134931337

其他函数

  • asarray函数:类似array函数,但若转换对象为数组时,仅创 建一个引用,而array为深拷贝。
  • ones_like函数:创建一个与指定数组相同形状的全1数组。
  • zeros_like函数:创建一个与指定数组相同形状的全0数组。
  • empty_like函数:创建一个与指定数组相同形状的未初始化数组。

数据类型

Numpy 的类型C 的类型描述
np.int8int8_t字节(-128到127)
np.int16int16_t整数(-32768至32767)
np.int32int32_t整数(-2147483648至2147483647)
np.int64int64_t整数(-9223372036854775808至9223372036854775807)
np.uint8uint8_t无符号整数(0到255)
np.uint16uint16_t无符号整数(0到65535)
np.uint32uint32_t无符号整数(0到4294967295)
np.uint64uint64_t无符号整数(0到18446744073709551615)
np.intpintptr_t用于索引的整数,通常与索引相同 ssize_t
np.uintpuintptr_t整数大到足以容纳指针
np.float32float
np.float64 / np.float_double请注意,这与内置python float的精度相匹配。
np.complex64float complex复数,由两个32位浮点数(实数和虚数组件)表示
np.complex128 / np.complex_double complex请注意,这与内置python 复合体的精度相匹配。

还有许多别名等,详情看:数据类型 | NumPy

数据类型的表示

既可以用类型本身,如np.int32,也可以用类型名称字符串,例如int32,还可以用类型代码字符串,例如i4

类型转换

使用astype方法进行数组之间的类型转换。

默认生成一个新数组。

num = np.arange(1,10,1.5)
print(num)num1 = num.astype(int)
print(num1)

image-20231112140030354

数组运算

  • 相同形状的数组之间的运算逐元素执行。

  • 数组与标量间的运算,将计算参数传递给 数组的每一个元素。

num1 = np.array([1, 2, 3])
num2 = np.array([3, 4, 5])# 相同形状的数组之间的运算逐元素执行。
print(num1 + num2)# 数组与标量间的运算,将计算参数传递给 数组的每一个元素。
print(num1 + 100)

image-20231112140443699

Python之Numpy详细教程_python numpy-CSDN博客

NumPy 介绍 | NumPy

相关文章:

numpy 基础使用

NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变…...

sqlite3编译脚本

../configure --hostarm --buildx86 CC/opt/sdk/gcc-arm-8.3-arm-armv5t-linux-gnueabi/bin/arm-armv5t-linux-gnueabi-gcc --prefix/opt/sdk/gcc-arm-8.3-arm-armv5t-linux-gnueabi/arm-armv5t-linux-gnueabi/sysroot/usr...

环形链表解析(c语言)c语言版本!自我解析(看了必会)

目录 1.判断一个表是否是环形链表! 代码如下 解析如下 2.快指针的步数和慢指针的步数有什么影响(无图解析) 3.怎么找到环形链表的入环点 代码如下 解析如下 1.判断一个表是否是环形链表! 代码如下 bool hasCycle(struct L…...

科技云报道:数智化升级,如何跨越数字世界与实体产业的鸿沟?

科技云报道原创。 数智化是当下商业环境下最大的确定性。 2022年,中国数字经济规模达50.2万亿元,占国内生产总值比重提升至41.5%,数字经济成为推动经济发展的重要引擎。从小型创业公司到跨国巨头,数字化转型在企业发展历程中彰显…...

Rt-Thread 移植6--多线程(KF32)

6.1 就绪列表 6.1.1 线程就绪优先级组 线程优先级表的索引对应的线程的优先级。 为了快速的找到线程在线程优先级表的插入和移出的位置,RT-Thread专门设计了一个线程就绪优先级组。线程就绪优先组是一个32位的整型数,每一个位对应一个优先级&#xff…...

HarmonyOS应用开发-首选项与后台通知管理

首选项 在移动互联网蓬勃发展的今天,移动应用给我们生活带来了极大的便利,这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置,HarmonyOS应用开发也不例外。本章以HarmonyOS的首选项为例,介绍了…...

通过easyexcel导出数据到excel表格

这篇文章简单介绍一下怎么通过easyexcel做数据的导出,使用之前easyui构建的歌曲列表crud应用,添加一个导出按钮,点击的时候直接连接后端接口地址,在后端的接口完成数据的导出功能。 前端页面完整代码 let editingId; let request…...

Android---MVP 中 presenter 声明周期的管理

我们经常在 Android MVP 架构中的 Presenter 层做一些耗时操作,比如请求网络数据,然后根据请求后的结果刷新 View。但是,如果按返回结束 Activity,而 Presenter 依然在执行耗时操作。那么就有可能造成内存泄漏,严重时甚…...

Oracle中的索引碎片

索引碎片是指索引在存储空间上不连续的分布情况,它可能会影响到数据库性能和查询效率。索引碎片化主要由以下几个原因导致: 插入、更新和删除操作:当对表中的数据进行插入、更新或删除操作时,索引也需要相应地更新。这些DML操作可…...

Java必刷入门递归题×5(内附详细递归解析图)

目录 1.求N的阶乘 2.求12...N的和 3.顺序打印数字的每一位 4.求数字的每一位之和 5.求斐波拉契数列 1.求N的阶乘 (1)解析题目意思 比如求5的阶乘,符号表示就是5!;所以5!5*4*3*2*1我们下面使用简单的…...

android 闪屏图适配尺寸

不同的 Android 设备可能具有不同的屏幕尺寸和分辨率,因此最好提供不同尺寸的启动画面图像,以确保与各种设备的兼容性。 以下是 Android 启动画面图像的一些最常见尺寸: 320 x 480像素(肖像) 480 x 320像素&#xff0…...

正则表达式中(?s)与(?m)的区别

理论: (?m) 和 (?s) 是正则表达式中的两个模式标志,它们具有不同的作用: (?m) 多行模式标志(也称为 “multiline” 模式): 默认情况下,正则表达式将整个输入字符串视为单行多行文本中使用…...

Clickhouse学习笔记(11)—— 数据一致性

使用合并树引擎时,无论是ReplacingMergeTree还是SummingMergeTree,都只能保证数据的最终一致性,因为数据的去重、聚合等操作会在数据合并的期间进行,而合并会在后台以一个不确定的时间进行,因此无法预先计划&#xff1…...

【uniapp】六格验证码输入框实现

效果图 代码实现 <view><view class"tips">已发送验证码至<text class"tips-phone">{{ phoneNumber }}</text></view><view class"code-input-wrap"><input class"code-input" v-model"…...

【react hook】在react hook组件中,使用Antd Table组件,columns数据异步获取,list数据更新但没有rerender解决办法

情景描述 我们有一个react组件&#xff0c;显示了一个Antd Table组件&#xff0c;设置了一个columns变量并复制给Table的columns属性&#xff0c;由于我们请求的datasource来源是异步的&#xff0c;示例伪代码如下&#xff1a; const [columns, setColumns] useState([]); /…...

ChatGPT的图识别来了

前几天ChatGPT推出了Dall-E 3功能&#xff0c;可以根据文字和描述一段话来生成一个或者一组图。 这次又来重磅了&#xff0c;图识别又来了&#xff01;换句话说&#xff0c;也即是文生图&#xff0c;图生文都可以实现了&#xff0c;一起来试试 1、解释图中的意思 &#xff0…...

java Stream编程笔记

文章目录 Stream介绍什么是 Stream&#xff1f; Stream中间操作过滤操作&#xff08;filter&#xff09;映射操作&#xff08;map&#xff09;排序操作&#xff08;sorted&#xff09;截断操作&#xff08;limit 和 skip&#xff09; Stream 的终止操作forEach 和 peek聚合操作…...

顶顶通语音识别使用说明

介绍 顶顶通语音识别软件(asrproxy)是一个对接了多种语音识别接口的语音识别系统。可私有化部署(支持中文英文和方言等&#xff0c;支持一句话识别、实时流识别、多声道录音文件识别。 原理 asrproxy内嵌了阿里达摩院的开源语音识别工具包FunASR,后续我们也会使用自有的预料…...

重磅发布 OpenAI 推出用户自定义版 ChatGPT

文章目录 重磅发布 OpenAI 推出用户自定义版 ChatGPT个人简介 重磅发布 OpenAI 推出用户自定义版 ChatGPT OpenAI 首届开发者大会 (OpenAI DevDay) 于北京时间 11 月 7 日凌晨 02:00 开始&#xff0c;大会上宣布了一系列平台更新。其中一个重要更新是用户可以创建他们自己的自定…...

Java 幼儿园(20231111)读取 json 文件

1、功能场景 &#xff08;1&#xff09;多人合作开发一个功能模块时&#xff0c;需要调用外部接口 &#xff08;2&#xff09;对方接口的开发工作还没有完成&#xff0c;只能提供一个返回值的示例文件 json 文件。 &#xff08;3&#xff09;返回的 json 数据多达几百个字段。 …...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...