常用 numpy 函数(长期更新)

news2025/2/26 23:12:50

文章目录

  • np.where()
  • np.zeros()
  • np.zeros_like()
  • np.divide()
  • np.linalg.norm()
  • np.uint8()
  • np.clip()

np.where()

np.where有两种用法

  • np.where(condition,x,y) 当where内有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时where返回y
#用法一
#当self.net_input(X)返回的值大于等于0.0时,where返回1,否则返回0
np.where(self.net_input(X) >= 0.0, 1, 0)
  • np.where(condition) 当where内只有一个参数时,那个参数表示条件,当条件成立时,where返回的是每个符合condition条件元素的坐标返回的是以元组的形式
#用法二
a = np.array([2,4,6,8,10])
#只有一个参数表示条件的时候
np.where(a > 5)

输出:
(array([2, 3, 4], dtype=int64),)

np.zeros()

返回值:ndarray
给定shape,dtype,order条件下的数组
在这里插入图片描述

np.zeros_like()

返回值:ndarray
和a同样的shape和数据类型(type)的子类零数组(向量)
在这里插入图片描述

np.divide()

  • 用例:
    numpy.divide(x1, x2, /, out=None, *, where=True, casting=‘same_kind’, order=‘K’, dtype=None, subok=True[, signature, extobj]) = <ufunc ‘true_divide’>

  • 功能:
    数组对应位置元素做除法。
    这里的除法结果和Python传统的地板除不同,这里得到的是真实值。numpy.divide的计算结果适应于输出值的数值类型,与输入值的数值类型无关。

  • 参数
    在这里插入图片描述

  • 返回值
    在这里插入图片描述

  • 备注
    在Python 2.2中地板除运算符//和除法运算符/的计算结果一致。通过在程序中添加from future import division代码段可以将默认的地板除运算符/变为真正的除法运算符。
    在Python 3.0中//为地板除运算符而/为真正的除法运算符。函数true_divide(x1, x2)的计算结果也为真正除法。

  • 示例:

from __future__ import division
import numpy as np
x = np.arange(5)
print('真正除法的运算结果:{}'.format(np.true_divide(x, 4)))
print('地板除运算结果:{}'.format(x//4))
print('真正除法的运算结果:{}'.format(x/4))
# 会将4复制5个变为(5,)数组
print('真正除法的运算结果:{}'.format(np.divide(x, 4)))
真正除法的运算结果:[0. 0.25 0.5 0.75 1. ]
地板除运算结果:[0 0 0 0 1]
真正除法的运算结果:[0. 0.25 0.5 0.75 1. ]
真正除法的运算结果:[0. 0.25 0.5 0.75 1. ]

np.linalg.norm()

np.linalg.norm()用法总结

np.linalg.norm()用于求范数,linalg本意为linear(线性) + algebra(代数),norm则表示范数。

用法

np.linalg.norm(x, ord=None, axis=None, keepdims=False)
  • x: 表示矩阵(一维数据也是可以的)

  • ord: 表示范数类型
    在这里插入图片描述
    矩阵的向量:
    ord=1:表示求列和的最大值
    ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算术平方根
    ord=∞:表示求行和的最大值
    ord=None:表示求整体的矩阵元素平方和,再开根号

  • axis:轴
    Python的numpy中axis=0、axis=1、axis=2解释

  • keepdims:表示是否保持矩阵的二位特性,True表示保持,False表示不保持,默认为False

np.uint8()

uint8是专门用于存储各种图像的(包括RGB,灰度图像等),范围是从0–255

用opencv处理图像时,可以发现获得的矩阵类型都是uint8

import cv2 as cv
img=cv.imread(hello.png)
print(img)
array([[[...],
        [...],
        [...]]],dtype='uint8')

转换成 uint8 类型方法:

  1. numpy有np.uint8()函数,但是这个函数仅仅是对原数据和0xff相与(和最低2字节数据相与),这就容易导致如果原数据是大于255的,那么在直接使用np.uint8()后,比第八位更大的数据都被截断了,比如:
>>>a=[2000,100,2]
>>>np.uint8(a)
array([208, 100, 2], dtype=uint8)
  1. 用 cv2.normalize 函数配合 cv2.NORM_MINMAX,可以设置目标数组的最大值和最小值,然后让原数组等比例的放大或缩小到目标数组,如下面的例子中是将 img 的所有数字等比例的放大或缩小到 0–255 范围的数组中(归一化)
cv2.normalize(img, out, 0, 255, cv2.NORM_MINMAX)

然后改变数据类型

np.array([out],dtype=‘uint8’)

总结:要想将当前的数组作为图像类型来进行各种操作,就要转换到uint8类型,转换的方式推荐使用第二种,因为第一种在值大于255以后就容易丢失。

np.clip()

numpy.clip(a, a_min, a_max, out=None)

参数说明

  • a : 输入的数组
  • a_min: 限定的最小值 也可以是数组 如果为数组时 shape必须和a一样
  • a_max:限定的最大值 也可以是数组 shape和a一样
  • out:剪裁后的数组存入的数组

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

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

相关文章

超强功能WebSSH安装,解决Web远程SSH终端

项目地址&#xff1a;https://github.com/huashengdun/webssh 一个简单的 Web 应用程序&#xff0c;用作 ssh 客户端以连接到您的 ssh 服务器。它是用 Python 编写的&#xff0c;基于 tornado、paramiko 和 xterm.js。 特征&#xff1a; 支持SSH密码认证&#xff0c;包括空密…

Windows系统配置CUDA编程环境

像配置一个简单的可以进行CUDA编程的Windows系统环境&#xff0c;分别需要CUDA以及Visual stdio。 注意&#xff0c;如果是新配置的电脑&#xff0c;一定要先安装visual stdio再安装CUDA&#xff0c;否则后面在VS中创建.cu文件时容易出现找不到模块的情况。 一、安装Visual st…

动态规划--(回文子串,最长回文子序列)

代码随想录day 57 动态规划模块 回文子串,最长回文子序列 文章目录1.leetcode 647. 回文子串1.1 详细思路及解题步骤1.2 Java版代码示例2.leetcode 516. 最长回文子序列2.1 详细思路及解题步骤2.2 Java版代码示例1.leetcode 647. 回文子串 1.1 详细思路及解题步骤 该题用动态规…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java杨佑川音乐播放器908v6

大部分步骤是 1.确定选题 选题的确定需要查阅大量的资料&#xff0c;要搞清楚自己大概想要研究的方向是什么。可以选择自己感兴趣的学科或者强势的学科进行研究&#xff0c;同时要多和毕业指导老师多交流&#xff0c;征求老师的意见和建议&#xff0c;最后确立选题。计算机专…

【K8S系列】第九讲:Kubernetes 之探针

目录 一、探针是什么 二、探针类型 2.1 livenessProbe 2.1.1 容器重启策略 2.2 readinessProbe 2.3 startupProbe 2.4 总结 2.5 探针示例 2.6 配置字段介绍 三、探测机制 3.1 HTTP GET探针 3.2 TCP套接字探针 3.3 Exec探针 Tips 一、探针是什么 探针:是由 kub…

OpenCV众筹了一款ROS2机器人rae,开源、功能强、上手简单。来瞅瞅~

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手君。 在2020年、2021年OpenCV分别在Kickstarter上众筹了两款OAK产品&#xff0c;均筹集…

设计模式——桥接模式

桥接&#xff08;Bridge&#xff09;模式 一、基本思想 当一个类内部具备两种或多种变化维度时&#xff0c;使用桥接模式可以解耦这些变化的维度&#xff0c;使高层代码架构稳定。 将抽象与实现分离&#xff0c;使它们可以独立变化。 用组合关系代替继承关系来实现&#xff0…

运维面试必问的中间件高频面试题

1. redis是单线程还是多线程&#xff1f; 这个问题已经被问过很多次了&#xff0c;从redis4.0开始引入多线程&#xff0c;redis 6.0 中&#xff0c;多线程主要用于网络 I/O 阶段&#xff0c;也就是接收命令和写回结果阶段&#xff0c;而在执行命令阶段&#xff0c;还是由单线程…

综述类论文_Machine Learning for Encrypted Malicious Traffic Detection(重要)

文章目录Machine Learning for Encrypted Malicious Traffic Detection: Approaches, Datasets and Comparative Study摘要存在的问题论文贡献1. 基于机器学习的加密流量检测模型的总体框架1.1 Research Target&#xff08;研究目标&#xff09;1.2 Traffic Dataset Collection…

Allegro给各种形式的板框导弧操作指导

Allegro给各种形式的板框导弧操作指导 Allegro可以给板框导弧,让加工出来的板框更加圆滑,具体操作步骤如下 板框是line形式的 选择Manufacture-Drafting-Fillet命令 在Options里面Radius输出导弧的半径,比如78.74 框选两个线段的部分 完成后的效果如下图 框选4个角落,…

Python基础学习

一、Python基础 1.Python介绍 2.发展史 3.Python 2 or 3? 4.安装 5.Hello World程序 6.变量 7.用户输入 8.模块初识 9. .pyc是个什么鬼&#xff1f; 10.数据类型初识 11.数据运算 12.表达式if ...else语句 13.表达式for 循环 14.break and continue 15.表达式while 循环…

最好的Python入门教材是哪本?这本书当之无愧

1.门槛低 适合编程零基础上手 《Python编程 从入门到实践&#xff08;第二版&#xff09;》的作者埃里克马瑟斯&#xff08;Eric Matthes&#xff09;是一名高中科学和数学老师&#xff0c;现居住在阿拉斯加&#xff0c;在当地讲授 Python 入门课程。他从 5 岁开始就一直在编写…

带你深度解析虚幻引擎4的照明和阴影知识

照明是渲染的重要组成部分。有静态光和动态光&#xff0c;它们往往很重并且需要大量计算。今天就让赞奇云工作站带领小伙伴们来学习一下虚幻引擎4中的光照和阴影的知识。 静态照明 静态光在编辑器中预先计算并保存在光照贴图中。 〇&#xff1a;良好的性能和质量&#xff08…

[go学习笔记.第十五章.反射,常量] 1.反射的基本介绍以及实践

一.反射的引入以及基本介绍 1.看两个问题 (1).对于结构体的序列化和反序列化&#xff0c;看一段代码 package mainimport("fmt" "encoding/josn" )type Monster struct {Name string json:"monsterName"Age int json:"monsterAge&quo…

Android商城开发----点击左侧分类列表右侧更新对应列表内容

Android商城开发----点击左侧分类列表右侧更新对应列表内容 目录Android商城开发----点击左侧分类列表右侧更新对应列表内容一、首先说布局&#xff1a;二、主要说一下&#xff0c;布局完成后实现点击左侧类别时&#xff0c;右侧展现对应类的商品列表。主要思想&#xff1a;源代…

Vue3响应系统的实现(二)

前言 继上一篇文章&#xff0c;我们已经能够实现一个简单的响应系统了&#xff0c;但是仍然存在很多缺陷&#xff0c;本篇文章将具体叙述一下存在的缺陷以及如何解决&#xff0c;最后实现一个较为完善的响应式系统 解决副作用函数硬编码问题 从上一篇文章中我们不难发现响应…

概率 | 【提神醒脑】重难点专题突破 自用笔记

本文总结参考于 kira 2023概率提神醒脑技巧班 中 —— 重难点专题。 笔记均为自用整理。加油!ヾ(◍∇◍)ノ゙ 一研为定! 一、条件均匀 / 指数 / 二项…分布 -------------------------------------------------------------------------------------------------------------…

基于inquirer实现一个控制台多级选择交互功能

说在前面 &#x1f388;在前端脚手架工具中经常会看到控制台输入参数等操作。例如Vue-cli中初始化项目会提示选择一些参数等。所以在开发脚手架工具或者node控制台程序&#xff0c;就需要用到inquirer工具或者类似的工具。但是使用过inquirer工具的同学应该知道&#xff0c;目前…

SpringSecurity整合SSM和SpringBoot完成方法级权限控制

初识权限管理 权限管理&#xff0c;一般指根据系统设置的安全规则或者安全策略&#xff0c;用户可以访问而且只能访问自己被授权的资源。权限管理几乎出现在任何系统里面&#xff0c;前提是需要有用户和密码认证的系统。 在权限管理的概念中&#xff0c;有两个非常重要的名词&…

SpringBoot SpringBoot 开发实用篇 1 热部署 1.4 关闭热部署功能

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇1 热部署1.4 关闭热部署功能1.4.1 关闭热部署1.4.2 小结1.4.3 总结1 …