numpy常见操作

  • 返回各维度元组print(img.shape)
  • 返回大小img.size
  • 返回各维度数据类型print(img.dtype)

  • 数据类型变int8mask=mask.astype(np.int8)
    注意int32可变float64
    但float64变int32会把小数截断
    string_可变float64

NumPy常见操作:

import numpy as np

创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
print(“原始数组:”, arr)

对数组进行求和
sum_result = np.sum(arr)
print(“求和结果:”, sum_result)

对数组进行均值计算
mean_result = np.mean(arr)
print(“均值结果:”, mean_result)

对数组进行最大值计算
max_result = np.max(arr)
print(“最大值结果:”, max_result)

对数组进行排序
sort_result = np.sort(arr)
print(“排序结果:”, sort_result)

#创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(“二维数组:”, arr)

#创建一个全为零的数组
zeros_arr = np.zeros((2, 3))
print(“全零数组:”, zeros_arr)

#创建一个全为一的数组
ones_arr = np.ones((3, 2))
print(“全一数组:”, ones_arr)

#创建一个随机数组
random_arr = np.random.rand(2, 3)
print(“随机数组:”, random_arr)

arr = np.array([1, 2, 3, 4, 5])
#访问数组的元素
print(“第一个元素:”, arr[0])
print(“最后一个元素:”, arr[-1])
print(“切片操作:”, arr[1:4])

#修改数组的元素
arr[2] = 10
print(“修改后的数组:”, arr)

#数组形状操作
print(“数组形状:”, arr.shape)

#数组重塑
reshape_arr = arr.reshape((5, 1))
print(“重塑后的数组:”, reshape_arr)

数组转置
transpose_arr = arr.T
print(“转置后的数组:”, transpose_arr)
数组计算:
python
复制
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

数组加法
add_result = arr1 + arr2
print(“数组加法结果:”, add_result)

数组减法
sub_result = arr1 - arr2
print(“数组减法结果:”, sub_result)

数组乘法
mul_result = arr1 * arr2
print(“数组乘法结果:”, mul_result)

数组除法
div_result = arr1 / arr2
print(“数组除法结果:”, div_result)

数组平方
square_result = np.square(arr1)
print(“数组平方结果:”, square_result)

数组平方根
sqrt_result = np.sqrt(arr1)
print(“数组平方根结果:”, sqrt_result)

  1. 数组拼接:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 水平拼接
hstack_result = np.hstack((arr1, arr2))
print("水平拼接结果:", hstack_result)# 垂直拼接
vstack_result = np.vstack((arr1, arr2))
print("垂直拼接结果:", vstack_result)# 深度拼接
dstack_result = np.dstack((arr1, arr2))
print("深度拼接结果:", dstack_result)
  1. 数组索引和切片:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 使用索引获取特定元素
print("索引获取元素:", arr[0, 1])# 使用切片获取子数组
print("切片获取子数组:", arr[1:, :2])
  1. 数组统计函数:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 求和
sum_result = np.sum(arr)
print("求和结果:", sum_result)# 均值
mean_result = np.mean(arr)
print("均值结果:", mean_result)# 标准差
std_result = np.std(arr)
print("标准差结果:", std_result)# 方差
var_result = np.var(arr)
print("方差结果:", var_result)# 最小值
min_result = np.min(arr)
print("最小值结果:", min_result)# 最大值
max_result = np.max(arr)
print("最大值结果:", max_result)
  1. 数组的广播:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 广播加法
broadcast_add_result = arr1 + arr2
print("广播加法结果:", broadcast_add_result)# 广播乘法
broadcast_mul_result = arr1 * arr2
print("广播乘法结果:", broadcast_mul_result)
  1. 数组的逻辑运算:
import numpy as nparr1 = np.array([True, False, True])
arr2 = np.array([False, True, True])# 逻辑与
and_result = np.logical_and(arr1, arr2)
print("逻辑与结果:", and_result)# 逻辑或
or_result = np.logical_or(arr1, arr2)
print("逻辑或结果:", or_result)# 逻辑非
not_result = np.logical_not(arr1)
print("逻辑非结果:", not_result)
  1. 数组的矩阵运算:
import numpy as npmatrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])# 矩阵乘法
matmul_result = np.matmul(matrix1, matrix2)
print("矩阵乘法结果:", matmul_result)# 矩阵转置
transpose_result = np.transpose(matrix1)
print("矩阵转置结果:", transpose_result)# 矩阵求逆
inv_result = np.linalg.inv(matrix1)
print("矩阵求逆结果:", inv_result)
  1. 数组的随机数生成:
import numpy as np# 生成服从正态分布的随机数
normal_arr = np.random.normal(loc=0, scale=1, size=(3, 3))
print("正态分布随机数:", normal_arr)# 生成均匀分布的随机数
uniform_arr = np.random.uniform(low=0, high=1, size=(3, 3))
print("均匀分布随机数:", uniform_arr)# 随机打乱数组
arr = np.array([1, 2, 3, 4, 5])
np.random.shuffle(arr)
print("随机打乱数组:", arr)
  1. 数组的元素统计:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 求和
sum_result = np.sum(arr)
print("求和结果:", sum_result)# 按行求和
row_sum_result = np.sum(arr, axis=1)
print("按行求和结果:", row_sum_result)# 按列求和
column_sum_result = np.sum(arr, axis=0)
print("按列求和结果:", column_sum_result)# 最大值
max_result = np.max(arr)
print("最大值结果:", max_result)# 按行找到最大值
row_max_result = np.max(arr, axis=1)
print("按行找到最大值结果:", row_max_result)# 按列找到最大值
column_max_result = np.max(arr, axis=0)
print("按列找到最大值结果:", column_max_result)
  1. 数组的形状操作:
import numpy as nparr = np.array([1, 2, 3, 4, 5, 6])# 改变数组形状为二维
reshape_result = np.reshape(arr, (2, 3))
print("改变形状后的数组:", reshape_result)# 展平数组
flatten_result = arr.flatten()
print("展平数组:", flatten_result)# 转置数组
transpose_result = np.transpose(arr)
print("转置数组:", transpose_result)
  1. 数组的数学函数:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 求平方根
sqrt_result = np.sqrt(arr)
print("平方根结果:", sqrt_result)# 求指数
exp_result = np.exp(arr)
print("指数结果:", exp_result)# 求对数
log_result = np.log(arr)
print("对数结果:", log_result)
  1. 数组的排序:
import numpy as nparr = np.array([3, 1, 5, 2, 4])# 升序排序
sorted_arr = np.sort(arr)
print("升序排序结果:", sorted_arr)# 降序排序
reverse_sorted_arr = np.sort(arr)[::-1]
print("降序排序结果:", reverse_sorted_arr)# 按列排序
arr = np.array([[3, 1, 5], [2, 4, 6]])
column_sorted_arr = np.sort(arr, axis=0)
print("按列排序结果:", column_sorted_arr)# 按行排序
row_sorted_arr = np.sort(arr, axis=1)
print("按行排序结果:", row_sorted_arr)
  1. 数组的去重:
import numpy as nparr = np.array([1, 2, 3, 2, 4, 1])# 去除重复元素
unique_arr = np.unique(arr)
print("去重结果:", unique_arr)# 返回去重元素的索引
unique_indices = np.unique(arr, return_index=True)[1]
print("去重元素的索引:", unique_indices)
  1. 数组的布尔运算:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 判断数组元素是否大于2
greater_than_2 = arr > 2
print("大于2的元素:", arr[greater_than_2])# 判断数组元素是否满足条件
condition = (arr > 2) & (arr < 5)
print("满足条件的元素:", arr[condition])# 使用布尔数组作为索引
bool_index = np.array([True, False, True, False, True])
print("使用布尔数组作为索引:", arr[bool_index])
  1. 数组的广播:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([[4], [5], [6]])# 广播数组相加
broadcast_result = arr1 + arr2
print("广播相加的结果:", broadcast_result)# 广播数组相乘
broadcast_multiply_result = arr1 * arr2
print("广播相乘的结果:", broadcast_multiply_result)
  1. 数组的数据类型:
import numpy as nparr = np.array([1, 2, 3])# 查看数组数据类型
dtype = arr.dtype
print("数组的数据类型:", dtype)# 修改数组数据类型
arr_float = arr.astype(float)
print("修改数据类型后的数组:", arr_float)
  1. 数组的索引和切片:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 获取数组元素
element = arr[2]
print("索引获取数组元素:", element)# 切片获取子数组
sub_array = arr[1:4]
print("切片获取子数组:", sub_array)# 布尔数组索引
bool_arr = np.array([True, False, True, False, True])
bool_indexing_result = arr[bool_arr]
print("布尔数组索引结果:", bool_indexing_result)
  1. 数组的形状操作:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6]])# 获取数组形状
shape = arr.shape
print("数组形状:", shape)# 改变数组形状
reshape_arr = arr.reshape(3, 2)
print("改变形状后的数组:", reshape_arr)# 展平数组
flatten_arr = arr.flatten()
print("展平数组:", flatten_arr)
  1. 数组的元素操作:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 数组元素加法
addition_result = arr + 2
print("数组元素加法结果:", addition_result)# 数组元素乘法
multiplication_result = arr * 3
print("数组元素乘法结果:", multiplication_result)# 数组元素平方
square_result = np.square(arr)
print("数组元素平方结果:", square_result)# 数组元素开方
sqrt_result = np.sqrt(arr)
print("数组元素开方结果:", sqrt_result)
  1. 数组的统计计算:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 计算数组元素的和
sum_result = np.sum(arr)
print("数组元素的和:", sum_result)# 计算数组元素的平均值
mean_result = np.mean(arr)
print("数组元素的平均值:", mean_result)# 计算数组元素的标准差
std_result = np.std(arr)
print("数组元素的标准差:", std_result)# 计算数组元素的最大值
max_result = np.max(arr)
print("数组元素的最大值:", max_result)# 计算数组元素的最小值
min_result = np.min(arr)
print("数组元素的最小值:", min_result)
  1. 数组的逻辑运算:
import numpy as nparr1 = np.array([True, False, True])
arr2 = np.array([False, True, True])# 逻辑与
and_result = np.logical_and(arr1, arr2)
print("逻辑与结果:", and_result)# 逻辑或
or_result = np.logical_or(arr1, arr2)
print("逻辑或结果:", or_result)# 逻辑非
not_result = np.logical_not(arr1)
print("逻辑非结果:", not_result)
  1. 数组的广播和矢量化操作:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 数组的广播相加
broadcast_addition = arr1 + arr2
print("广播相加结果:", broadcast_addition)# 数组的广播相乘
broadcast_multiplication = arr1 * arr2
print("广播相乘结果:", broadcast_multiplication)# 数组的矢量化操作
vectorized_operation = np.sin(arr1) + np.cos(arr2)
print("矢量化操作结果:", vectorized_operation)
  1. 数组的线性代数运算:
import numpy as nparr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])# 矩阵乘法
matrix_multiplication = np.matmul(arr1, arr2)
print("矩阵乘法结果:", matrix_multiplication)# 矩阵的转置
matrix_transpose = arr1.T
print("矩阵转置结果:", matrix_transpose)# 矩阵的逆
matrix_inverse = np.linalg.inv(arr1)
print("矩阵逆结果:", matrix_inverse)# 矩阵的行列式
matrix_determinant = np.linalg.det(arr1)
print("矩阵行列式:", matrix_determinant)
  1. 数组的随机数生成:
import numpy as np# 生成随机整数数组
random_int_array = np.random.randint(low=1, high=10, size=(3, 3))
print("随机整数数组:", random_int_array)# 生成随机浮点数数组
random_float_array = np.random.rand(2, 2)
print("随机浮点数数组:", random_float_array)# 生成服从正态分布的随机数数组
random_normal_array = np.random.normal(loc=0, scale=1, size=(3, 3))
print("服从正态分布的随机数数组:", random_normal_array)

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

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

相关文章

继承-学习2

this关键字&#xff1a;指向调用该方法的对象&#xff0c;一般我们是在当前类中使用this关键字&#xff0c;所以我们常说代表本类对象的引用 super关键字&#xff1a;代表父类存储空间的标识(可看作父类对象的引用) 父类&#xff1a; package ven;public class Fu {//父类成员…

操作系统面经

1. 进程和线程的区别&#xff1f; 调度&#xff1a;进程是资源管理的基本单位&#xff0c;线程是程序执行的基本单位。切换&#xff1a;线程上下文切换比进程上下文切换要快得多。拥有资源&#xff1a; 进程是拥有资源的一个独立单位&#xff0c;线程不拥有系统资源&#xff0…

unity自定义着色器基础

这些内置渲染管线的着色器示例演示了编写自定义着色器的基础知识&#xff0c;并涵盖了常见的用例。 有关编写着色器的信息&#xff0c;请参阅编写着色器。 设置场景 第一步是创建一些用于测试着色器的对象。在主菜单中选择 Game Object > 3D Object > Capsule。然后&a…

高光谱遥感学习入门丨高光谱数据处理基础、Python和Matlab高光谱遥感数据处理

目录 ①Python高光谱遥感数据处理与高光谱遥感机器学习方法深度应用 ②Matlab高光谱遥感、数据处理与混合像元分解实践技术应用 ③高光谱遥感数值建模技术及在植被、水体、土壤信息提取领域应用 更多应用 高光谱遥感信息对于我们认识世界具有重要意义。尽管大部分物质在人眼…

记录 | docker权限原因导致service ssh start失败

【报错】 容器内启 ssh server 报错 有两个错&#xff1a; &#xff08;1&#xff09;/etc/ssh/sshd_host_rsa_key 权限太高&#xff1b; &#xff08;2&#xff09;/run/sshd用户组不为 root 解决方法&#xff1a; 方法一&#xff1a; 各自容器内对/etc/ssh/sshd_host_r…

【前端素材】推荐优质后台管理系统 Adminity平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面&#xff0c;通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面&#xff0c;使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

2024年四川媒体新闻发布渠道,媒体邀约资源表

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 四川有哪些媒体新闻发布渠道&#xff0c;媒体邀约资源表&#xff1f; 2024年四川媒体新闻发布渠道&#xff0c;媒体邀约资源表 四川本地媒体&#xff1a;如四川日报、华西都市报、成都商…

【论文阅读-PRIVGUARD】Day4:3节

3 PRIVANALYZER&#xff1a;强制执行隐私政策的静态分析 本节介绍PRIVANALYZER&#xff0c;这是一个用于强制执行由PRIVGUARD追踪的隐私政策的静态分析器**。我们首先回顾LEGALEASE政策语言&#xff0c;我们使用它来正式编码政策&#xff0c;然后描述如何静态地强制执行它们**…

<专利>机器人3D视觉快速定位抓取方法及系统

摘要&#xff0c;此专利无可用的关键技术信息&#xff0c;基本都是下面几句话反复说。。。 本发明提供了一种机器人3D快速定位抓取方法及系统&#xff0c; 包括&#xff1a; 通过高速的3D结构光成像对目标物体的表面轮廓进行扫描&#xff0c; 形成点云数据&#xff1b;对所述点…

Day07:基础入门-抓包技术全局协议封包监听网卡模式APP小程序PC应用

目录 非HTTP/HTTPS协议抓包工具 WireShark 科来网络分析系统 WPE封包 思维导图 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&#xff1a;文件上传下载/端口服务/Sh…

未来已来:智慧餐饮点餐系统引领餐饮业的数字化转型

时下&#xff0c;智慧餐饮点餐系统正在引领着餐饮业迈向更高的位置。今天&#xff0c;小编将与大家共同探讨智慧餐饮点餐系统的发展趋势、优势以及对餐饮业的影响。 一、智慧餐饮点餐系统的发展趋势 智慧餐饮点餐系统的出现填补了这一空白&#xff0c;它通过引入数字化技术&a…

如何学习、上手点云算法(一):点云基础

写在前面 本文内容 点云算法的学习基础&#xff0c;入门方法&#xff0c;相关领域&#xff0c;资源&#xff0c;开源库&#xff0c;算法等的介绍&#xff1b; 以Open3D和PCL等为基础工具的点云处理代码讲解、实现&#xff1b; 文中涉及的参考以链接形式给出&#xff0c;涉及文…

【JavaEE】_第一个SpringBoot项目

目录 1. 第一个SpringBoot项目 1.1 创建项目 1.2 加载依赖 1.3 运行启动类 1.4 创建一个简单类试运行 2. 关于SpringBoot项目的目录结构 3. 关于修改文件名 4. 关于启动日志 5. 关于访问出错 5.1 404 5.1.2 URL输入错误 5.1.2 注解错误 5.2 500 5.3 无法访问此网…

JDK动态代理如何获取动态生成的代理类的class文件

在使用JDK动态代理&#xff0c;即reflect包下的Proxy类的newProxyInstance方法时&#xff0c;会在运行时&#xff0c;根据传进来的接口类型动态生成class字节码文件。这个字节码文件是在内存中动态获取的&#xff0c;程序结束就没有了&#xff0c;如何动态获取呢。 System.set…

LeetCode 2265.统计值等于子树平均值的节点数

给你一棵二叉树的根节点 root &#xff0c;找出并返回满足要求的节点数&#xff0c;要求节点的值等于其 子树 中值的 平均值 。 注意&#xff1a; n 个元素的平均值可以由 n 个元素 求和 然后再除以 n &#xff0c;并 向下舍入 到最近的整数。 root 的 子树 由 root 和它的所…

海外代理IP干货:应该选择SOCKS55代理还是Http代理?

在使用IPFoxy全球代理时&#xff0c;选择 SOCKS55代理还是HTTP代理&#xff1f;IPFoxy代理可以SOCKS55、Http协议自主切换&#xff0c;但要怎么选择&#xff1f;为解决这个问题&#xff0c;得充分了解两种代理的工作原理和配置情况。 在这篇文章中&#xff0c;我们会简要介绍 …

【双指针+中心扩散】5. 最长回文子串

5. 最长回文子串 解题思路 初始化&#xff1a;定义一个空字符串res来存储当前找到的最长回文子串。 遍历字符串&#xff1a;对于字符串s中的每个位置i&#xff0c;将其作为中心&#xff0c;进行两次回文检查&#xff1a; 将s[i]作为单个中心进行检查。 将s[i]和s[i1]作为共…

Android PDFView 提示401 pom

背景 在开发安卓app&#xff0c;使用PDF组件来解析URL地址 &#xff0c;从github找到一个开源组件 AndroidPdfViewer 遇到一个大坑&#xff0c;一直提示下载依赖401 pom 打开控制台链接弹出需要登录jitpack 原因分析&#xff1a; 这个组件项目依赖库链接到了需要鉴权的…

大语言模型LLM分布式训练:TensorFlow攻略与深度解析(LLM系列04)

文章目录 大语言模型LLM分布式训练&#xff1a;TensorFlow攻略与深度解析&#xff08;LLM系列04&#xff09;1. 引言2. TensorFlow分布式训练基础概念3. TensorFlow中LLM分布式训练的关键技术及应用4. 利用TensorFlow进行LLM分布式训练的具体实践5. 高级主题与最新进展探究 大语…