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

【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

相关文章:

  • PostgreSQL标识符长度限制不能超过63字节
  • 【西南大学主办】第九届电子信息技术与计算机工程国际学术会议(EITCE 2025)
  • 构建高性能异步任务引擎:FastAPI + Celery + Redis
  • 任务三数据库加固
  • 题海拾贝:力扣 86.分隔链表
  • 启用WSL后,使用ssh通道连接ubuntu
  • openEuler 欧拉系统nginx正向代理 http https —— 筑梦之路
  • 【数据结构取经之路】栈
  • 使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症
  • nginx实现多个域名和集群
  • 鸿蒙实战开发:【FaultLoggerd组件】讲解
  • 英伟达深夜放王炸|字节跳动游戏之路波折不断|文旅短剧风口将至|25岁QQ魅力不减,5亿人在用|云计算市场疯长152%|电商巨头齐瞄向富足悠闲银发族
  • 刷题日记:面试经典 150 题 DAY6
  • SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测
  • php前端和java后端数据调用流程
  • F-logic DataCube3 任意文件上传漏洞复现(CVE-2024-25832)
  • 【C++】用红黑树模拟实现set、map
  • 学习笔记--强化学习(1)
  • 使用jQuery的autocomplete实现数据查询一次,联想自动补全
  • Apache Dolphinscheduler - 无需重启 Master-Server 停止疯狂刷日志解决方案
  • Linux下安装Android Studio及创建桌面快捷方式
  • 【论文阅读】Improved Denoising Diffusion Probabilistic Models
  • mysql逗号分隔字段拆成行简述
  • Redis的安装和部署教程(Windows环境)
  • 全球变暖(蓝桥杯,acwing每日一题)
  • 【DL经典回顾】激活函数大汇总(二十五)(GEGLU附代码和详细公式)