【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)

相关推荐

  1. Numpy】(2numpy对象random模块

    2024-03-20 00:58:04       21 阅读
  2. Random —— python(And)numpy

    2024-03-20 00:58:04       8 阅读
  3. numpy

    2024-03-20 00:58:04       15 阅读
  4. <span style='color:red;'>Numpy</span>

    Numpy

    2024-03-20 00:58:04      12 阅读
  5. NumPy 数组对象

    2024-03-20 00:58:04       18 阅读
  6. Python子进程内numpy.random失效

    2024-03-20 00:58:04       42 阅读
  7. Python学习-Numpy-2

    2024-03-20 00:58:04       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 00:58:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 00:58:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 00:58:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 00:58:04       20 阅读

热门阅读

  1. 如何在海外服务器上配置静态路由?

    2024-03-20 00:58:04       21 阅读
  2. YS/T 429.2-2012 有机聚合物喷涂幕墙铝单板检测

    2024-03-20 00:58:04       22 阅读
  3. CSS3DObject 分子公式demo 实现

    2024-03-20 00:58:04       21 阅读
  4. 一文彻底弄懂MySQL的字符集和排序规则

    2024-03-20 00:58:04       21 阅读
  5. python的封装应用

    2024-03-20 00:58:04       22 阅读
  6. BFS模板

    2024-03-20 00:58:04       19 阅读