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

【NumPy】基础知识

NumPy是Python的第三方库,要使用需要先导入。

import numpy as np

在pycharm中可以通过np.来查看numpy的可用函数。

np.函数名? 查看对应函数的详细信息。

生成NumPy数组

ndarray 多维数组对象

numpy封装了一个新的数据类型ndarray,是一个多维数组对象。该对象封装了许多常用数学运算函数。

这段代码要在jupyter中运行才会显示图片。

cv.imread()函数-CSDN博客读取图片后以多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定。是一个3维numpy数组,这个数组有三个轴,长度分别为1068、1080、3。

numpy的ndarray对象有3个重要的属性:

print("img数组的维度",img.ndim)
print("img数组的形状",img.shape)
print("img数组的数据类型",img.dtype)

import numpy as np# 使用Opencv2开源库读取图像数据
import cv2from matplotlib import pyplot as plt# 读取一张图片,把图像转换为2维的numpy数组
img=cv2.imread("./hachiware1.jpg")# 使用plt显示图像
plt.imshow(img)print("数据类型:{},形状:{}".format(type(img),img.shape))

 

利用已有数据生成数组

1)将列表转换为ndarray

numpy.array(lst1)

import numpy as nplst1=[3.14,2.17,0,1,2]
print(lst1)nd1=np.array(lst1)print(nd1)
print(type(nd1))print(nd1.ndim)
print(nd1.shape)
print(nd1.dtype)

2)将嵌套列表转换成多维数组

import numpy as nplst1=[ [3.14,2.17,0,1,2] , [1,2,3,4,5] ]
nd2=np.array(lst1)
print(nd2)print(type(nd2))print(nd2.ndim)
print(nd2.shape)
print(nd2.dtype)

3)利用random模块生成数组

import numpy as np#生成形状为(4,4),值在0-1之间的随机数
#np.random.random 生成0-1之间的随机数
print(np.random.random((4,4)),end='\n\n')#产生一个取值范围在[1,50)之间的数组,数组的形状是(3,3)
#参数起始值(low)默认为0,终止值(high)默认为1
print(np.random.randint(low=1,high=50,size=(3,3)),end='\n\n')#产生的数组元素是均匀分布的随机数
print(np.random.uniform(low=1,high=3,size=(3,3)),end='\n\n')#生成满足正态分布的形状为(3,3)的矩阵
print(np.random.randn(3,3))

上面的代码每次结果都不一样了,可以通过设置种子让每次结果都一样。

前面加上下面这段代码即可。

np.random.seed(10)
import numpy as npnp.random.seed(10)#生成形状为(4,4),值在0-1之间的随机数
#np.random.random 生成0-1之间的随机数
print(np.random.random((4,4)),end='\n\n')#产生一个取值范围在[1,50)之间的数组,数组的形状是(3,3)
#参数起始值(low)默认为0,终止值(high)默认为1
print(np.random.randint(low=1,high=50,size=(3,3)),end='\n\n')#产生的数组元素是均匀分布的随机数
print(np.random.uniform(low=1,high=3,size=(3,3)),end='\n\n')#生成满足正态分布的形状为(3,3)的矩阵
print(np.random.randn(3,3))

生成特定形状的多维数组

import numpy as np#生成全是0的3*3矩阵
nd5=np.zeros([3,3])
print(nd5)#生成与nd5形状一样的全0矩阵
nd5=np.zeros_like(nd5)
print(nd5)#生成全是1的3*3矩阵
nd5=np.ones([3,3])
print(nd5)#生成三阶单位矩阵
nd5=np.eye(3)
print(nd5)#生成三阶对角矩阵
nd5=np.diag([1,2,3])
print(nd5)

将生成的数组保存到文件里

import numpy as npnd5=np.diag([1,2,3])
print(nd5)#保存为文件
np.savetxt(X=nd5,fname='./test1.txt')#加载文件中数据
nd5=np.loadtxt('./test1.txt')
print(nd5)

发现文件夹里多了test1.txt文件。

利用arrange、linspace函数生成数组

import numpy as np#arrange([start,],stop[,step,],dtype=None)
#start和stop用于指定范围,step用于指定步长,生成一个数组
#start默认为0,step可为小数
#范围为[start,stop)
print(np.arange(10))
print(np.arange(0,10))
print(np.arange(1,4,0.5))
print(np.arange(9,-1,-1))

相关文章:

【NumPy】基础知识

NumPy是Python的第三方库,要使用需要先导入。 import numpy as np 在pycharm中可以通过np.来查看numpy的可用函数。 np.函数名? 查看对应函数的详细信息。 生成NumPy数组 ndarray 多维数组对象 numpy封装了一个新的数据类型ndarray,是一个多维数组对…...

传统CV算法——特征匹配算法

Brute-Force蛮力匹配 Brute-Force蛮力匹配是一种简单直接的模式识别方法,经常用于计算机视觉和数字图像处理领域中的特征匹配。该方法通过逐一比较目标图像中的所有特征点与源图像中的特征点来寻找最佳匹配。这种方法的主要步骤包括: 特征提取&#xff…...

PyInstaller问题解决 onnxruntime-gpu 使用GPU和CUDA加速模型推理

前言 在模型推理时,需要使用GPU加速,相关的CUDA和CUDNN安装好后,通过onnxruntime-gpu实现。 直接运行python程序是正常使用GPU的,如果使用PyInstaller将.py文件打包为.exe,发现只能使用CPU推理了。 本文分析这个问题…...

Apache Pig

目录 一、配置说明1.本地模式2.集群模式 二、pig的数据模型三、pig的数据类型四、惰性执行五、pig的基本语法5.1语法说明5.2案例操作 六、pig的自定义函数 一、配置说明 1.本地模式 操作的是Linux系统文件 pig -x local关键日志 当前处于root目录下 2.集群模式 连接的是…...

axios返回的是promise对象如何处理?

axios返回的是promise对象如何处理? Axios返回的是Promise对象,这意味着可以使用Promise的.then()、.catch()和.finally()方法来处理异步操作的结果。 以下是处理Axios返回Promise对象的几种常见方式: 1、使用.then()处理响应数据&#xf…...

归并排序/计数排序

1:归并排序 1.1:代码 void _MergeSort(int* arr, int left, int right, int* tmp) {if (left > right){return;}int mid (left right) / 2; _MergeSort(arr, left, mid, tmp); _MergeSort(arr, mid1, right, tmp); int begin1 left…...

etcdctl defrag 剔除、添加etcd节点

零、准备工作 find / -name etcdctl cp /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/12/fs/usr/local/bin/etcdctl /usr/local/bin/etcdctlalias ec"etcdctl --endpointshttps://127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --…...

计算机网络(二) —— 网络编程套接字

目录 一,认识端口号 1.1 背景 1.2 端口号是什么 1.3 三个问题 二,认识Tcp协议和Udp协议 三,网络字节序 四,socket编程接口 4.1 socket常见API 4.2 sockaddr结构 一,认识端口号 1.1 背景 问题:在进…...

二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)

一、目的 由于部分数据类型频率为1s,从而数据规模特别大,因此完整的JSON放在Hive中解析起来,尤其是在单机环境下,效率特别慢,无法满足业务需求。 而Flume的拦截器并不能很好的转换数据,因为只能采用Java方…...

Qt项目使用Inno Setup打包(关于打包中文乱码的解决)

​ 关于打包好的文件乱码解决方法 打包好的文件中文乱码,就是编码格式出现了问题,更改一下中文脚本编码格式,在官网Inno Setup Translations下载好中文脚本 点击下载,然后另存为 得到ChineseSimplified.isl.txt文件后&#…...

HTML和HTML5有什么区别

HTML(超文本标记语言)是构建网页的基础,而HTML5是HTML的最新版本。虽然HTML和HTML5在许多方面相似,但HTML5引入了许多新的特性和改进,使得网页开发更加高效和功能丰富。 一、HTML概述 HTML,即超文本标记语…...

Collections

Collections 是 Java 中的一个实用工具类,提供了一系列静态方法来操作集合。以下是其详细介绍: 前置知识 在 Java 中,可变参数(Varargs)允许方法接受可变数量的参数。使用可变参数时,可以传递任意数量的参…...

fastreport打印trichedit分页问题的解决

用fastreport来打印richedit里面的内容。刚开始放一个frxrichview组件到报表上,然后在 var str: TMemoryStream; begin begin str: TMemoryStream.Create; CurrRichRecord.richedit.Lines.SaveToStream(str); str.Position: 0; tfrxRichview(fr…...

【MeterSphere】vnc连接不上selenium-chrome容器

目录 一、现象 二、查看配置文件 docker-compose-seleniarm.yml 三、处理 3.1 删除上图当中的三行 3.2 msctl reload 3.3 重新连接 前言:使用vnc连不上ms的selenium-chrome容器,看不到里面运行情况,以前其实可以,后来不行…...

mysql explain分析

目录 思维导图 id select_type SIMPLE PRIMARY SUBQUERY DEPENDENT SUBQUREY UNCACHEABLE SUBQUREY: UNION UNION RESULT DERIVED MATERIALIZED table partitions type ALL index range ref eq_ref const system possible_keys keys key_l…...

[论文笔记]Circle Loss: A Unified Perspective of Pair Similarity Optimization

引言 为了理解CoSENT的loss,今天来读一下Circle Loss: A Unified Perspective of Pair Similarity Optimization。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 这篇论文从对深度特征学习的成对相似度优化角度出发,旨在最大化同类之间…...

Windows .NET8 实现 远程一键部署,几秒完成发布,提高效率 - CICD

1. 前言 场景 (工作环境 一键部署 到 远端服务器 [阿里云]) CICD 基本步骤回顾 https://blog.csdn.net/CsethCRM/article/details/141604638 2. 环境准备 服务器端IP:106.15.74.25(阿里云服务器) 客户端&#xff1…...

echarts 水平柱图 科技风

var category [{ name: "管控", value: 2500 }, { name: "集中式", value: 8000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 } ]; // 类别 var total 10000; // 数据…...

标准IO与系统IO

概念区别 标准IO:(libc提供) fopen fread fwrite 系统IO:(linux系统提供) open read write 操作效率 因为内存与磁盘的执行效率不同 系统IO: 把数据从内存直接写到磁盘上 标准IO&#xff…...

【conda】Conda 环境迁移指南:如何更改 envs_dirs 和 pkgs_dirs 以及跨盘迁移

目录 迁移概述一、conda 配置文件1.1 安装 Conda 后的默认目录设置1.2 查看当前 .condarc 配置 二、更改 Conda 的 envs_dirs 和 pkgs_dirs 设置2.1 使用 conda config 命令Windows 和 Linux 系统 2.2 手动编辑 .condarc 文件Windows 系统Linux 系统 2.3 验证设置 三、迁移 Con…...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

反射获取方法和属性

Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦&#xff0…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...