[python] Numpy库用法(持续更新)

news2024/11/24 20:45:57

先导入一下

import numpy as np
一、np.random用法
  1. 生成随机整数:np.random.randint(low, high, size)

    • low: 最小值
    • high: 最大值
    • size: 生成的数组大小(可以是多维,下面同理)
  2. 生成随机浮点数:np.random.uniform(low, high, size)

    • low: 最小值
    • high: 最大值
    • size: 生成的数组大小

在NumPy中,np.random.uniform这个函数的名称中的"uniform"指的是均匀分布(Uniform Distribution)。这种分布中,所有数值在一定范围内出现的概率是均等的,也就是说,这个范围内的任何一个数被选中的机会都是一样的。这和其他一些分布不同,比如正态分布,其中某些数值出现的机率比其他数值高。

具体来说,当你使用np.random.uniform(low, high, size)时:

  • lowhigh参数定义了数值的范围,其中low是下限(包含),high是上限(不包含)。
  • size参数决定了生成多少个这样的随机数。

举个例子,如果你调用np.random.uniform(1, 5, 3),NumPy将会生成一个数组,包含3个在1(包含)到5(不包含)之间均匀分布的随机浮点数。

因此,这个函数被命名为"uniform",正是因为它生成的是遵循均匀分布规律的随机数。

  1. 生成服从正态分布的随机数:np.random.normal(loc, scale, size)

    • loc: 均值
    • scale: 标准差
    • size: 生成的数组大小
  2. 生成一个随机排列:np.random.permutation(x)

    • x: 输入的数组或整数
  3. 生成一个随机样本:np.random.sample(size)

    • size: 生成的数组大小
  4. 生成一个随机种子:np.random.seed(seed)

    • seed: 种子值
  5. 生成一个符合指定概率分布的随机数:np.random.choice(a, size, replace, p)

    • a: 输入的数组
    • size: 生成的数组大小
    • replace: 是否可以重复抽样
    • p: 每个元素被抽样的概率
  6. 生成一个随机数组成的矩阵:np.random.rand(d0, d1, ..., dn)

    • d0, d1, ..., dn: 矩阵的维度
  7. 生成一个随机整数矩阵:np.random.randint(low, high, size)

    • low: 最小值
    • high: 最大值
    • size: 生成的矩阵大 小
import numpy as np

# 生成一个随机整数
random_int = np.random.randint(1, 10, 5)
print(random_int)

# 生成一个随机浮点数
random_float = np.random.uniform(1.0, 5.0, 5)
print(random_float)

# 生成一个服从正态分布的随机数
random_normal = np.random.normal(0, 1, 5)
print(random_normal)

# 生成一个随机排列
random_permutation = np.random.permutation([1, 2, 3, 4, 5])
print(random_permutation)

# 生成一个随机样本
random_sample = np.random.sample(5)
print(random_sample)

# 生成一个随机种子
np.random.seed(0)
random_seed = np.random.rand(3)
print(random_seed)

# 生成一个符合指定概率分布的随机数
random_choice = np.random.choice([1, 2, 3, 4, 5], 3, replace=False, p=[0.1, 0.2, 0.3, 0.2, 0.2])
print(random_choice)

# 生成一个随机矩阵
random_matrix = np.random.rand(2, 3)
print(random_matrix)

# 生成一个随机整数矩阵
random_int_matrix = np.random.randint(1, 10, (2, 3))
print(random_int_matrix)

# 生成一个服从均匀分布的随机数
random_uniform = np.random.rand(2, 3)
print(random_uniform)

输出结果

[9 6 4 8 5]
[1.87678294 4.17125097 4.34816045 4.56395443 1.99147984]
[-0.27015379 -1.82642694  0.96417976  1.38643896  0.23534789]
[5 1 3 2 4]
[0.73823778 0.70459439 0.67601929 0.45422436 0.67000757]
[0.5488135  0.71518937 0.60276338]
[3 4 2]
[[0.891773   0.96366276 0.38344152]
 [0.79172504 0.52889492 0.56804456]]
[[6 9 5]
 [4 1 4]]
[[0.95715516 0.14035078 0.87008726]
 [0.47360805 0.80091075 0.52047748]]
二.一些数据处理函数

 

 

 

np.load

  • 用途:这个函数用于加载存储在.npy文件中的NumPy数组。这是一种高效存储和读取NumPy数组数据的方式,特别适用于持久化大型数组。

np.astype

  • 用途astype方法允许你复制数组并将其元素转换为一个指定的类型。这在数据处理中非常常见,比如将整数数组转换为浮点数数组,或者将浮点数数组转换为整数数组。类型转换是数据预处理的一个重要步骤。

np.shape 和 .shape

  • 用途:这些用法提供了一种获取NumPy数组维度的方法。np.shape是一个函数,而.shape是数组对象的一个属性。了解数组的形状对于进行数组操作(如重塑或切片)是非常重要的。

np.reshape

  • 用途reshape方法允许在不更改数组数据的前提下,给数组一个新的形状。这在将数据准备为特定格式进行机器学习模型训练时尤其有用。

np.std

  • 用途:这个函数计算沿指定轴的标准差,是度量数据分散程度的一个重要统计量。在数据分析和科学研究中,标准差用于衡量数值的波动程度。

np.mean

  • 用途mean函数计算沿指定轴的平均值。平均值是最常用的统计量之一,用于描述数据集中趋势的中心位置。

np.max

  • 用途:这个函数计算沿指定轴的最大值。在数据分析中,了解数据的范围(最大值和最小值)对于评估数据的分布和极值非常重要。

np.arange

  • 用途arange函数返回一个有等差数列构成的数组。这个函数非常适用于生成序列数据,例如生成连续的时间点序列。它是Python内置range函数的NumPy版本,但可以生成浮点序列并具有更多的灵活性。

val_X.reshape(val_X.shape[0], -1)的操作并不是将数组重塑为一维数组,而是重塑为二维数组,其中第一维度保持不变,第二维度自动计算以包含剩余的所有元素。

具体来说:

  • val_X.shape[0]:这是val_X数组的第一个维度的大小,即行数。
  • -1:这个参数告诉NumPy自动计算第二个维度的大小,以便保持所有数据元素的总数不变。

例如,如果val_X原来的形状是(100, 2, 3),这表示有100个2x3的矩阵。执行val_X.reshape(val_X.shape[0], -1)后,形状将变为(100, 6),这意味着每个原始的2x3矩阵现在被展平成一个包含6个元素的一维数组,但在更大框架下,它们作为100行的二维数组存在。

因此,reshape操作并没有创建一个真正的一维数组,而是创建了一个二维数组,其第一维保持为原数组的行数,第二维展平了原有的每个子矩阵。

 

假设我们有一个数组test_Y,它表示某种测试数据的标签,如下所示:

test_Y = np.array([1, 2, 1, 3, 2, 1, 3])

我们想要找出所有标签等于1的数据的索引。在这个例子中,y的值设为1

  1. 首先,np.arange(num_data)生成一个从0开始的等差数列。假设num_data等于test_Y的长度,即7,那么生成的数组就是[0, 1, 2, 3, 4, 5, 6]

  2. 接下来,test_Y == 1生成一个布尔数组,表示test_Y中每个位置的值是否等于1。对于我们的test_Y,结果是:

    [True, False, True, False, False, True, False]

    这意味着在位置0、2和5的值等于1

  3. 最后,通过使用上一步生成的布尔数组作为索引,我们从步骤1生成的等差数列中选择索引。因此,np.arange(num_data)[test_Y == 1]的结果将是:

    [0, 2, 5]

    这个结果告诉我们,在test_Y数组中,值等于1的元素位于原数组的第0、第2和第5个位置。

总结一下,这行代码的作用是找出test_Y中所有等于y值的元素的索引,并以数组的形式返回这些索引。这种技巧在处理分类问题时特别有用,例如,当你需要根据分类结果选择或操作数据的子集时。

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

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

相关文章

LongVLM:让大模型解读长视频 SOTA 的方法

LongVLM:让大模型解读长视频 SOTA 的方法 使用LongVLM处理长视频的步骤LongVLM 方法3.1 总体架构3.2 局部特征聚合3.3 全局语义整合 效果4.1 实验设置4.2 主要结果4.3 消融研究4.4 定性结果 论文:https://arxiv.org/pdf/2404.03384.pdf 代码&#xff1a…

java混淆的重要性分析

Java代码混淆是一种常用的安全技术,它通过对Java代码进行变换和重命名,使得源代码变得难以理解和逆向工程,从而增强代码的安全性。以下是对Java混淆重要性的分析: 保护知识产权:Java混淆可以防止恶意用户或竞争对手轻易…

算法:树形dp(树状dp)

文章目录 一、树形DP的概念1.基本概念2.解题步骤3.树形DP数据结构 二、典型例题1.LeetCode:337. 打家劫舍 III1.1、定义状态转移方程1.2、参考代码 2.ACWing:285. 没有上司的舞会1.1、定义状态转移方程1.2、拓扑排序参考代码1.3、dfs后序遍历参考代码 一…

【可视化大屏开发】18. 加餐-ECharts+百度地图API实现热力图

ECharts结合百度地图API能获得更好的使用体验。 效果展示 放大后的效果 切换卫星地图模式 实现步骤 1. 通过Python实现GPS数据模拟 2. 通过IDEA开发地图 通过Python实现GPS数据模拟 import random from math import cos, sin, radians, sqrt import jsondef generate_random…

【web网页制作】html+css网页制作学校网站主题校园网页(5页面)【附源码】

学校网页制作目录 涉及知识写在前面一、网页主题二、网页效果Page1、简介Page2、校园风光Page3、学术研究Page4、校训阐述Page5、留言 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 四、网页源码4.1 主页模块源码4.2 源码获取方式 作者寄语 涉及知识 学校网站主…

【云计算】云网络产品体系概述

云网络产品体系概述 在介绍云网络产品体系前,先介绍几个与云计算相关的基础概念。 阿里云在基础设施层面分为 地域 和 可用区 两层,关系如下图所示。在一个地域内有多个可用区,每个地域完全独立,每个可用区完全隔离,同…

低噪声、低电压、低功耗特点的双运算放大器D722

概述 Silicore D722具有低噪声、低电压、低功耗特点的双运算放大器,具有9MHz的高增益带宽积,转换率为8.5V/μs, 5V时静态电流为0.97mA/每个放大器。适用于低电压和低噪声场合的应用系统,它提供轨到轨的输出摆幅,符合工…

【C++】1.从C语言转向C++

目录 一.对C的认识 二.C的关键字 三.命名空间 3.1命名空间的定义 3.2命名空间的使用 四.C的输入与输出 五.缺省参数 5.1全缺省参数 5.2半缺省参数 六.函数重载 七.引用 7.1引用的特性 7.2引用和指针的区别 八.内联函数 九.auto关键字(C1…

面试:如何设计一个注册中心?

大家好,我是田哥 上周,一位群里的朋友反馈面试情况: 今天,给大家分享如何设计一个注册中心。其实这个问题,我之前在知识星球里分享过,可能是因为时间比较久了,加上这位朋友加入不久,…

提升编程效率的秘密武器:IntelliJ IDEA

IntelliJ IDEA的基本介绍 正如一个故事的开头,我们从一个名字开始 - IntelliJ IDEA。这是一个在程序员中广受欢迎的集成开发环境(IDE),由捷克公司JetBrains开发。它的名字听起来有些复杂,但实际上,它的功能…

Windows联网状态工具TCPView

文章目录 TCPView命令行工具更多Sysinternals Suite工具 TCPView TCPView用于显示系统上所有 TCP 和 UDP 终结点的详细列表,包括本地和远程地址以及 TCP 连接的状态,界面如下。 列表的表头含义如下 表头含义表头含义Process name应用名称Process id进程…

Web App 入门指南:构建预测模型 App 的利器(shiny)

Web App 入门指南:构建预测模型 App 的利器 简介 近年来,随着机器学习和人工智能技术的快速发展,预测模型在各行各业得到了广泛应用。为了方便地部署和使用预测模型,将模型构建成 Web App 是一种非常好的选择。Web App 无需下载…

【vue】v-if 条件渲染

v-if 不适用于频繁切换显示模式的场景 修改web.user&#xff0c;可看到条件渲染的效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…

ChatGPT 会被 OpenAI 的版权诉讼摧毁吗?|TodayAI

未来人工智能是否能与人类融合成为一个引人关注的问题&#xff0c;但目前&#xff0c;ChatGPT等人工智能技术可能首先需要面对一个更紧迫的挑战&#xff1a;大规模的版权侵权诉讼。近期&#xff0c;ChatGPT因涉嫌在未经授权的情况下使用大量作者的作品进行训练&#xff0c;而被…

元象4.2B参数 MoE大模型实战

01 简介 近期&#xff0c;元象公司推出了其首个Moe大模型XVERSE-MoE-A4.2B。该模型采用了混合专家模型架构&#xff08;Mixture of Experts&#xff09;&#xff0c;并拥有4.2B的激活参数&#xff0c;其性能可与13B模型相媲美。值得一提的是&#xff0c;这个模型是完全开源的&…

算法设计与分析实验报告c++实现(最近点对问题、循环赛日程安排问题、排序问题、棋盘覆盖问题)

一、实验目的 1&#xff0e;加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、最…

《剑指 Offer》专项突破版 - 面试题 107 : 矩阵中的距离(C++ 实现)

题目链接&#xff1a;矩阵中的距离 题目&#xff1a; 输入一个由 0、1 组成的矩阵 M&#xff0c;请输出一个大小相同的矩阵 D&#xff0c;矩阵 D 中的每个格子是矩阵 M 中对应格子离最近的 0 的距离。水平或竖直方向相邻的两个格子的距离为 1。假设矩阵 M 中至少有一个 0。 …

Google 推出 Gemini 1.5 Pro能处理音频;iOS 18或带来Safari 浏览助手;Llama 3 开源模型下个月推出

Google 推出 Gemini 1.5 Pro 公共预览版&#xff0c;能处理音频 Google 宣布将通过其 AI 应用平台 Vertex AI 向公众提供 Gemini 1.5 Pro&#xff0c;并且还赋予其「听力」&#xff0c;帮助用户处理音频内容。 用户可以上传会议录音、电视节目等音频内容&#xff0c;无需书面记…

Python计算多个表格中多列数据的平均值与标准差并导出为新的Excel文件

本文介绍基于Python语言&#xff0c;对一个或多个表格文件中多列数据分别计算平均值与标准差&#xff0c;随后将多列数据对应的这2个数据结果导出为新的表格文件的方法。 首先&#xff0c;来看一下本文的需求。现有2个.csv格式的表格文件&#xff0c;其每1列表示1个变量&#x…

如何入门做物联网系统压测?

文章目录 一、政策解读二、MQTT 压测常见场景三、MQTT常见业务场景1、并发连接2、消息吞吐量测试2.1 1 对 12.2 多对1&#xff08;上报&#xff09;2.3 1对多2.4 其它场景 三、MQTT常见性能指标四、MQTT常见性能工具1、emqtt-bench2、JMeter 五、小结 一、政策解读 微信公众号…