【Numpy】(2)numpy对象和random模块

numpy.array对象

numpy.array 对象是 NumPy 库的核心,它提供了一种高效的方式来存储和操作同质数据类型的多维数组。每个 numpy.array 对象都有一系列的属性,这些属性提供了关于数组的重要信息。理解这些属性对于有效地使用 NumPy 和进行数据分析是非常关键的。以下是 numpy.array 对象的一些最重要的属性的详细介绍:

ndarray.ndim

  • ndim 属性表示数组的维数,或者说数组轴的数量。例如,一个一维数组的 ndim 值为1,二维数组的 ndim 值为2,以此类推。

ndarray.shape

  • shape 属性是一个表示数组在每个维度上大小的元组。对于一个二维数组(矩阵),其形状将表示为 (行数, 列数)

ndarray.size

  • size 属性表示数组中元素的总数量。这等于 shape 属性中各维度大小的乘积。

ndarray.dtype

  • dtype 属性表示数组中元素的数据类型,如 float64(64位浮点数)、int32(32位整数)、bool(布尔值)等。

ndarray.itemsize

  • itemsize 属性表示数组中每个元素的大小(以字节为单位)。例如,数据类型为 float64 的数组中每个元素的 itemsize 为8,因为一个 float64 占用8字节。

ndarray.data

  • data 属性是一个指向数组实际数据的缓冲区的指针。通常,我们不直接使用这个属性,因为我们可以通过索引方法直接访问数组中的元素。

使用示例

下面是一个简单的例子,演示如何创建一个 NumPy 数组并使用这些属性:

import numpy as np

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

# 打印数组的属性
print("Array dimensions:", arr.ndim)
print("Shape of array:", arr.shape)
print("Size of array:", arr.size)
print("Data type of array elements:", arr.dtype)
print("Item size of array elements (bytes):", arr.itemsize)

np.random

np.random 模块是 NumPy 库的一部分,提供了用于生成随机数的功能。这个模块包含了一系列函数,用于生成不同类型的随机数据,如单个数、数组、根据特定分布生成的随机数等。以下是 np.random 模块的详细介绍,包括常用函数和使用示例。

随机数生成

生成单个随机数
  • np.random.rand(): 生成一个[0, 1)区间内的均匀分布的随机数。
  • np.random.randn(): 生成一个标准正态分布(均值为0,方差为1)的随机数。
生成随机数组
  • np.random.rand(d0, d1, ..., dn): 生成一个给定形状的数组,数组中的元素是[0, 1)区间内的均匀分布的随机数。
  • np.random.randn(d0, d1, ..., dn): 生成一个给定形状的数组,数组中的元素是标准正态分布的随机数。
  • np.random.randint(low, high=None, size=None, dtype='l'): 生成一个随机整数或整数数组,范围是[low, high),如果high=None,则范围是[0, low)。

随机种子

NumPy的随机数功能是基于伪随机数生成器的,这意味着它们是通过算法在确定性的基础上生成的,看起来像是随机的。设置相同的种子值将会产生相同的随机数序列。

  • np.random.seed(seed=None): 设置随机数生成的种子。指定种子后,随机数生成的序列是可重复的。

从特定分布生成随机数

  • np.random.normal(loc=0.0, scale=1.0, size=None): 从正态分布中抽取随机数。
  • np.random.uniform(low=0.0, high=1.0, size=None): 从均匀分布中抽取随机数。
  • np.random.binomial(n, p, size=None): 从二项分布中抽取随机数。
  • np.random.poisson(lam=1.0, size=None): 从泊松分布中抽取随机数。
  • np.random.exponential(scale=1.0, size=None): 从指数分布中抽取随机数。

随机抽样

  • np.random.choice(a, size=None, replace=True, p=None): 从给定的一维数组中随机抽取元素。replace 控制是否可以重复抽取同一个元素,p 指定各元素被抽取的概率。

示例代码

import numpy as np

# 设置随机种子
np.random.seed(42)

# 生成随机数组
arr_uniform = np.random.rand(2, 3)  # 均匀分布
arr_normal = np.random.randn(2, 3)  # 标准正态分布
arr_int = np.random.randint(1, 10, size=(2, 3))  # 随机整数

print("Uniform distributed array:\n", arr_uniform)
print("\nNormally distributed array:\n", arr_normal)
print("\nRandom integer array:\n", arr_int)

# 从正态分布生成随机数
mean = 0
std = 1
size = 5
normal_samples = np.random.normal(mean, std, size)
print("\nNormal distribution samples:", normal_samples)

# 随机抽样
choices = np.random.choice(['a', 'b', 'c', 'd'], size=10, replace=True)
print("\nRandom choices:", choices)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openEuler 欧拉系统nginx正向代理 http https —— 筑梦之路

正向代理 Nginx正向代理,通过服务器代理客户端去重定向请求访问到目标服务器的一种代理服务。对于目标服务器来说浏览器/客户端是隐藏的。Nginx 正向代理默认只支持http 协议,不支持 https 协议,需借助"ngx_http_proxy_connect_module&q…

【数据结构取经之路】栈

目录 引言 栈的性质 顺序栈 栈的基本操作 初始化 销毁 插入 删除 判空 取栈顶元素 栈的大小 完整代码: 引言 栈(stack),可以用数组实现,也可以用链表实现。用数组实现的栈叫顺序栈,用链表实现的栈叫链式栈&#…

使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症

项目场景: 微信小程序开发,使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症 解决方案: 找到组件的源代码,然后删除那三个…

鸿蒙实战开发:【FaultLoggerd组件】讲解

简介 Faultloggerd部件是OpenHarmony中C/C运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件,Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志,定位相关问题。 架构 Native InnerKits 接口 Si…

英伟达深夜放王炸|字节跳动游戏之路波折不断|文旅短剧风口将至|25岁QQ魅力不减,5亿人在用|云计算市场疯长152%|电商巨头齐瞄向富足悠闲银发族

新闻一分钟速览 文旅短剧风口将至,一地狂拍十部,影视界看法分歧,悬念丛生!字节跳动游戏之路波折不断,能否逆风翻盘引关注。折叠屏手机痛症治愈,实力席卷高端市场,势头强劲!雷军豪言…

刷题日记:面试经典 150 题 DAY6

刷题日记:面试经典 150 题 DAY6 392. 判断子序列167. 两数之和 II - 输入有序数组11. 盛最多水的容器15. 三数之和209. 长度最小的子数组 392. 判断子序列 原题链接 392. 判断子序列 双指针,i指向s,j指向t 如果s[i]t[j],则匹配…

SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述程序…

F-logic DataCube3 任意文件上传漏洞复现(CVE-2024-25832)

0x01 产品简介 F-logic DataCube3是一款用于光伏发电系统的紧凑型终端测量系统。 0x02 漏洞概述 F-logic DataCube3 /admin/setting_photo.php接口处存在任意文件上传漏洞 ,未经身份验证的攻击者可通过该漏洞在服务器端写入后门,获取服务器权限,进而控制整个web服务器。 …

【C++】用红黑树模拟实现set、map

目录 前言及准备:一、红黑树接口1.1 begin1.2 end1.3 查找1.4 插入1.5 左单旋和右单旋 二、树形迭代器(正向)2.1 前置 三、模拟实现set四、模拟实现map 前言及准备: set、map的底层结构是红黑树,它们的函数通过调用红…

学习笔记--强化学习(1)

参考:https://blog.csdn.net/koulongxin123/article/details/122676149 1.什么是强化学习? (1)定义 基于环境的反馈而行动,通过不断与环境的交互、试错,最终完成特定目的或者使得整体行动收益最大化(是一种通过与环境…

使用jQuery的autocomplete实现数据查询一次,联想自动补全

书接上回,上次说到在jsp页面中,通过监听输入框的数值变化,实时查询数据库,得到返回值使用autocomplete属性自动补全,实现一个联想补全辅助操作,链接:使用jquery的autocomplete属性实现联想补全操…

Apache Dolphinscheduler - 无需重启 Master-Server 停止疯狂刷日志解决方案

记录的是一个 3.0 比较难搞的问题,相信不少使用过 3.0 的用户都遇到过 Master 服务中存在一些工作流或者任务流一直不停的死循环的问题,导致疯狂刷日志。不过本人到现在也没找到最关键的触发原因,只是看到一些连锁反应带来的结果…… 影响因素…

Linux下安装Android Studio及创建桌面快捷方式

下载 官网地址:https://developer.android.com/studio?hlzh-cn点击下载最新版本即可 安装 将下载完成后文件,进行解压,然后进入android-studio-2023.2.1.23-linux/android-studio/bin目录下,启动studio.sh即可为了更加方便的使…

【论文阅读】Improved Denoising Diffusion Probabilistic Models

Improved Denoising Diffusion Probabilistic Models 文章目录 Improved Denoising Diffusion Probabilistic Models概述Improving the Log-likelihoodLearning ∑ θ ( x t , t ) \sum_{\theta}(x_{t}, t) ∑θ​(xt​,t)Improving the Noise ScheduleReducing Gradient Nois…

Redis的安装和部署教程(Windows环境)

一、安装Redis服务 1、下载Redis压缩包 以下这个是我网盘里面的(这个是v8.0版本的,支持导入.rdb数据文件) 链接:百度网盘 请输入提取码 提取码:x0f1 --来自百度网盘超级会员V5的分享 2、解压到文件夹 将下载的压缩…

【DL经典回顾】激活函数大汇总(二十五)(GEGLU附代码和详细公式)

激活函数大汇总(二十五)(GEGLU附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或缺的角色…

金蝶云星空——插件dll重新发布报错:鏃犳硶鏄剧ず椤甸潰锛屽洜涓哄彂鐢熷唴閮ㄦ湇鍔″櫒閿欒銆�

项目场景: 金蝶插件开发 问题描述 今天更新了插件dll然后重启IIS金蝶就报如下错误: 解决方案: 折腾了一天结果发现是给自己挖坑了,这次更新我担心插件代码有问题就把原dll重命名了然后把最新dll更新到金蝶bin文件中&#xff0c…

使用Java JDBC连接数据库

在Java应用程序中,与数据库交互是一个常见的任务。Java数据库连接(JDBC)是一种用于在Java应用程序和数据库之间建立连接并执行SQL查询的标准API。通过JDBC,您可以轻松地执行各种数据库操作,如插入、更新、删除和查询数…

c语言指针(二)

c语言指针(二) 1.数组名的理解 2.使用指针访问数组 3.一维数组的传参本质 1.数组名的理解 int arr[10] { 1,2,3,4,5,6,7,8,9,10 }; int* p &arr[0]这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是…

在线教育平台帮助教培机构打造线上

随着互联网的迅猛发展,在线教育逐渐成为了教育行业的主流趋势。为了满足教育机构和学生对高效、便捷在线教育的需求,乔拓云教育系统应运而生。该系统以学员端展示课程和后台管理教务为核心功能,为教育机构提供了一站式解决方案,助…
最新文章