python numpy (下)

自学python之路

大数据实验室第 7 次打卡

python numpy (下)

十一、 数组连接

连接numpy数组
连接意味着将两个或多个数组的内容放在单个数组中。在SQL中,我们基于键来连接表,而在numpy中,我们按轴链接数组。传递了一系列要与轴一起连接到 concatenate()函数的数组。如果为显示传递轴。则将其视为零。
实例:
在这里插入图片描述
实例2(沿着行axis=1连接两个2-D数组):
在这里插入图片描述
使用堆栈函数连接数组
堆栈与级联相同,唯一的不同是堆栈是沿着新轴完成的。
我们可以沿着第二个轴连接两个一维数组,这将导致它们彼此重叠,即,堆叠(stacking)。
我们传递了一系列要与轴一起连接到 concatenate() 方法的数组。如果未显式传递轴,则将其视为 0。
实例:
在这里插入图片描述
沿行堆叠
NumPy 提供了一个辅助函数:hstack() 沿行堆叠。
实例:
在这里插入图片描述
沿列堆叠
NumPy 提供了一个辅助函数:vstack() 沿列堆叠。
实例
在这里插入图片描述
沿高度堆叠(深度)
NumPy 提供了一个辅助函数:dstack() 沿高度堆叠,该高度与深度相同。
实例
在这里插入图片描述

十二、 numpy数组拆分

拆分 NumPy 数组
拆分是连接的反向操作。
连接(Joining)是将多个数组合并为一个,拆分(Spliting)将一个数组拆分为多个。
我们使用 array_split() 分割数组,将要分割的数组和分割数传递给它。
实例
将数组分为 3 部分:
在这里插入图片描述
拆分为数组
array_split() 方法的返回值是一个包含每个分割的数组。
如果将一个数组拆分为 3 个数组,则可以像使用任何数组元素一样从结果中访问它们:
实例
访问拆分的数组:
在这里插入图片描述
下面的例子还返回三个 2-D 数组,但它们沿行 (axis=1) 分割:
在这里插入图片描述
使用 hsplit() 方法将 2-D 数组沿着行分成三个 2-D 数组:
在这里插入图片描述

十三、 数组搜索

搜索数组
可以在数组中搜索(检索)某个值,然后返回获得匹配的索引。要搜索数组,请使用 where() 方法。
实例
查找值为 4 的索引:
在这里插入图片描述
在这里插入图片描述
搜索排序
有一个名为 searchsorted() 的方法,该方法在数组中执行二进制搜索,并返回将在其中插入指定值以维持搜索顺序的索引。
假定 searchsorted() 方法用于排序数组。
实例
查找值为7 的索引:
在这里插入图片描述
从右侧搜索
默认情况下,返回最左边的索引,但是我们可以给定 side=‘right’,以返回最右边的索引。
实例
从右边开始查值为 7 的索引:
在这里插入图片描述
多个值
要搜索多个值,请使用拥有指定值的数组。
实例
查找应在其中插入值 2、4 和 6 的索引:
在这里插入图片描述

十四、 数组排序

数组排序
排序是指将元素按有序顺序排列。
有序序列是拥有与元素相对应的顺序的任何序列,例如数字或字母、升序或降序。
NumPy ndarray 对象有一个名为 sort() 的函数,该函数将对指定的数组进行排序。
实例
对数组进行排序:
在这里插入图片描述
注释:此方法返回数组的副本,而原始数组保持不变。
还可以对字符串数组或任何其他数据类型进行排序:
实例
对数组以字母顺序进行排序:
在这里插入图片描述
对 2-D 数组排序
如果在二维数组上使用 sort() 方法,则将对两个数组进行排序:
实例
对 2-D 数组排序
在这里插入图片描述

十五、 numpy数组过滤

数组过滤
从现有数组中取出一些元素并从中创建新数组称为过滤(filtering)。
在 NumPy 中,我们使用布尔索引列表来过滤数组。
布尔索引列表是与数组中的索引相对应的布尔值列表。
如果索引处的值为 True,则该元素包含在过滤后的数组中;如果索引处的值为 False,则该元素将从过滤后的数组中排除。
实例
用索引 0 和 2、4 上的元素创建一个数组:
在这里插入图片描述
创建过滤器数组
在上例中,我们对 True 和 False 值进行了硬编码,但通常的用途是根据条件创建过滤器数组。
实例
创建一个仅返回大于 62 的值的过滤器数组:
在这里插入图片描述
实例
创建一个过滤器数组,该数组仅返回原始数组中的偶数元素:
在这里插入图片描述

十六、numpy中的随机数

什么是随机数?
随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。
伪随机和真随机
计算机在程序上工作,程序是权威的指令集。因此,这意味着必须有某种算法来生成随机数。
如果存在生成随机数的程序,则可以预测它,因此它就不是真正的随机数。
通过生成算法生成的随机数称为伪随机数。
我们可以生成真正的随机数吗?
是的。为了在我们的计算机上生成一个真正的随机数,我们需要从某个外部来源获取随机数据。外部来源通常是我们的击键、鼠标移动、网络数据等。
我们不需要真正的随机数,除非它与安全性(例如加密密钥)有关或应用的基础是随机性(例如数字轮盘赌轮)。
生成随机数
NumPy 提供了 random 模块来处理随机数。
实例
生成一个 0 到 100 之间的随机整数:
在这里插入图片描述
实例
生成一个 0 到 100 之间的随机浮点数:
在这里插入图片描述
生成随机数组
在 NumPy 中,我们可以使用上例中的两种方法来创建随机数组。
整数
randint() 方法接受 size 参数,您可以在其中指定数组的形状。
实例
生成一个 1-D 数组,其中包含 5 个从 0 到 100 之间的随机整数:
在这里插入图片描述
实例
生成有 3 行的 2-D 数组,每行包含 5 个从 0 到 100 之间的随机整数:
在这里插入图片描述
从数组生成随机数
choice() 方法使您可以基于值数组生成随机值。
choice() 方法将数组作为参数,并随机返回其中一个值。
实例
返回数组中的值之一:
在这里插入图片描述
在这里插入图片描述

十七、numpy ufuncs

ufuncs 指的是“通用函数”(Universal Functions),它们是对 ndarray 对象进行操作的 NumPy 函数。

为什么要使用 ufuncs?
ufunc 用于在 NumPy 中实现矢量化,这比迭代元素要快得多。
它们还提供广播和其他方法,例如减少、累加等,它们对计算非常有帮助。
ufuncs 还接受其他参数,比如:
where 布尔值数组或条件,用于定义应在何处进行操作。
dtype 定义元素的返回类型。
out 返回值应被复制到的输出数组。

什么是向量化?
将迭代语句转换为基于向量的操作称为向量化。
由于现代 CPU 已针对此类操作进行了优化,因此速度更快。

对两个列表的元素进行相加:
list 1: [1, 2, 3, 4]
list 2: [4, 5, 6, 7]
一种方法是遍历两个列表,然后对每个元素求和。
如果没有 ufunc,我们可以使用 Python 的内置 zip() 方法:
在这里插入图片描述
对此,NumPy 有一个 ufunc,名为 add(x, y),它会输出相同的结果。通过 ufunc,我们可以使用 add() 函数:
在这里插入图片描述

喜欢好看的各种类型的壁纸、头像、朋友圈背景图、QQ名片背景图的朋友可以关注我个人公众号呀

每天分享超多超好看的各种风格类型 头像!壁纸!朋友圈背景图!嘿嘿!

大家也可以关注我的公众号:壁纸头像爱好家

爱你们!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shashank497

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值