《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()

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

结束语

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

相关推荐
StarRocks_labs3 小时前
从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升
大数据·数据库·starrocks·分布式·spark·iris·物化视图
若兰幽竹4 小时前
【Spark分析HBase数据】Spark读取并分析HBase数据
大数据·spark·hbase
R²AIN SUITE4 小时前
金融合规革命:R²AIN SUITE 如何重塑银行业务智能
大数据·人工智能
绿算技术5 小时前
“强强联手,智启未来”凯创未来与绿算技术共筑高端智能家居及智能照明领域新生态
大数据·人工智能·智能家居
只因只因爆6 小时前
spark的缓存
大数据·缓存·spark
Leo.yuan7 小时前
3D 数据可视化系统是什么?具体应用在哪方面?
大数据·数据库·3d·信息可视化·数据分析
只因只因爆8 小时前
spark小任务
大数据·分布式·spark
cainiao0806058 小时前
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
java·大数据·开发语言
End92811 小时前
Spark之搭建Yarn模式
大数据·分布式·spark
我爱写代码?11 小时前
Spark 集群配置、启动与监控指南
大数据·开发语言·jvm·spark·mapreduce