《PySpark大数据分析实战》-20.NumPy介绍数组的生成

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏⭐️+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-20.NumPy介绍数组的生成

《PySpark大数据分析实战》-20.NumPy介绍数组的生成

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第3章第2节的内容:NumPy介绍数组的生成。

图书在:当当京东机械工业出版社以及各大书店有售!

数学计算库NumPy介绍

NumPy(Numerical Python)是Python中科学计算的基础包,是用于科学计算和数值分析的一个重要库。它提供了多维数组对象(ndarray),各种派生对象,以及用于数组快速操作的通用函数、线性代数、傅里叶变换、随机数生成等功能,是Python科学计算中必不可少的库。要在项目中使用NumPy,需要在Python环境中安装NumPy,命令如下:

bash 复制代码
$ pip install numpy

在使用时需要在Python脚本中导入numpy,以及其他必要的包,代码如下:

python 复制代码
import numpy as np
import random
import time

数组的生成

NumPy提供了一些用于生成包含初始值的N维数组的方法,可以方便人们快速地生成N维数组。

生成有初始占位符内容的数组

NumPy可以生成初始占位符内容为0、1或随机数的数组,主要的方法有:

  • numpy.zeros(),用于生成元素全为0的数组。
  • numpy.ones(),用于生成元素全为1的数组。
  • numpy.empty(),用于生成元素为随机数的数组。

在下面的案例中分别生成包含不同初始值的二维数组,代码如下:

python 复制代码
# 生成全为0的数组
ary3 = np.zeros(shape=(2, 3), dtype="int32")
# 生成全为1的数组
ary4 = np.ones(shape=(2, 3), dtype=np.int32)
# 生成随机数数组
ary5 = np.empty(shape=(2, 3), dtype=np.float64)
print(ary3)
print(ary4)
print(ary5)

执行代码,输出结果为:

text 复制代码
[[0 0 0]
 [0 0 0]]
[[1 1 1]
 [1 1 1]]
[[6.23042070e-307 3.56043053e-307 1.37961641e-306]
 [2.22518251e-306 1.33511969e-306 1.24610383e-306]]
生成固定范围的数组

在生成数组时,可以指定数组中元素的数据范围,主要的方法有:

  • numpy.arange(),生成一个可指定起始值(默认为0)、终止值(不包含)、步长的数组。
  • numpy.linspace(),生成一个可指定起始值、终止值、样本数的一维等差数列数组。
  • numpy.logspace(),生成一个可指定起始值、终止值、样本数的一维对数数列数组。

在下面的案例中,分别生成包含不同数据范围的数组,代码如下:

python 复制代码
# 生成起始值1、终止值100、步长10的数组
ary6 = np.arange(1, 100, 10)
# 生成起始值1、终止值100、样本数10个的数组
ary7 = np.linspace(1, 100, 10)
# 生成起始值1、终止值2、以10为对数底数、样本数9个的数组
ary8 = np.logspace(1.0, 2.0, num=9)
print(ary6)
print(ary7)
print(ary8)

执行代码,输出结果如下:

text 复制代码
[ 1 11 21 31 41 51 61 71 81 91]
[  1.  12.  23.  34.  45.  56.  67.  78.  89. 100.]
[ 10.          13.33521432  17.7827941   23.71373706  31.6227766
  42.16965034  56.23413252  74.98942093 100.        ]
生成服从分布律的数组

NumPy还可以生成服从一定分布律规则的数组,主要的方法有:

  • numpy.random.rand(),生成一个元素服从均匀分布的数组,可以指定每个维度的元素个数。
  • numpy.random.uniform(),从一个均为分布中随机抽样。
  • numpy.random.randn(),生成一个元素服从正太分布的数组,可以指定每个维度的元素个数。
  • numpy.random.normal(),从一个正太分布中随机抽样。

在下面的案例中,分布生成满足不同分布律的数组,代码如下:

python 复制代码
import matplotlib.pyplot as plt

figure, ax = plt.subplots(2, 2)
plt.rcParams['font.sans-serif'] = ['Simhei']
plt.subplot(2, 2, 1)
# 生成3000个元素的[0.1)区间的均匀分布数组
plt.hist(np.random.rand(3000))
ax[0][0].set_title('[0,1)均匀分布数组')

plt.subplot(2, 2, 2)
# 从[1,40)区间的均匀分布中随机抽样3000个元素
plt.hist(np.random.uniform(low=1, high=40, size=3000))
ax[0][1].set_title('[1,40)均匀分布中随机抽样')

plt.subplot(2, 2, 3)
# 生成均值为10,标准差为2,服从正太分布的数组
plt.hist(np.random.normal(10, 2, 3000))
ax[1][0].set_title('均值10,标准差2的正太分布数组')

plt.subplot(2, 2, 4)
# 生成服从标准正太分布的数组
plt.hist(np.random.randn(3000))
ax[1][1].set_title('标准正太分布数组')

plt.tight_layout()
plt.show()

执行代码,绘制的图形如图所示。

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

相关推荐
用户Taobaoapi201420 分钟前
淘宝商品列表查询 API 接口详解
大数据
涛思数据(TDengine)1 小时前
taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析
大数据·数据库·时序数据库·tdengine
DuDuTalk1 小时前
DuDuTalk接入DeepSeek,重构企业沟通数字化新范式
大数据·人工智能
大数据追光猿1 小时前
Qwen 模型与 LlamaFactory 结合训练详细步骤教程
大数据·人工智能·深度学习·计算机视觉·语言模型
Elastic 中国社区官方博客2 小时前
使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack
大数据·linux·服务器·elasticsearch·搜索引擎·信息可视化·debian
对许3 小时前
Hadoop的运行模式
大数据·hadoop·分布式
天空卫士4 小时前
AI巨浪中的安全之舵:天空卫士助力人工智能落地远航
大数据·人工智能·安全·网络安全·数据安全
SelectDB技术团队6 小时前
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
大数据·数据库·云原生·doris·存算分离
泰迪智能科技018 小时前
企业数据挖掘平台×DeepSeek强强联合,多种应用场景适用
人工智能·数据挖掘
生信大杂烩8 小时前
Xenium数据分析 | 数据预处理、单细胞降维聚类、细胞类型定义
数据挖掘·数据分析·聚类