numpy 拼接_python数据分析—>numpy(3)

cd985ca4219a468e55e4dba832dad1de.png

Numpy数组计算

数组之所以重要是因为它允许我们进行批量操作数据并没有任何for循环也被称为向量化。

数组与标量的算术操作

数组与标量的算术操作会把计算参数传递给数组的每一个元素。

38a843d8b7220e696f8a19a43adc0800.png

两个等尺寸数组的算术操作

两个等尺寸数组的算术操作实际上是逐元素操作。

2154c3d9e29394c63c61c5cb0c55b58c.png

广播机制

广播机制规则:如果对于每个结尾维度(即从尾部开始的),轴长度都匹配或者长度都是1,两个二维数组就是可以进行广播的。之后,广播会在丢失的或者长度为1的轴上进行。

数组维度不同,结尾轴长度一致

9c0e1eb18dc39f801e62841a3bf73141.png
  • 在其丢失的轴上进行,也就是0轴广播

29283f5c480b0a8a7e286f4793068edf.png

数组维度相同,其中有个轴长度为1

b94ef0c8bac83e1846f282b57a3f307f.png
  • 在其长度为1轴上进行,此处也就是1轴广播

注意

  • 维度完全不一致,则无法广播。

数组拼接

  • np.vstack() 垂直拼接

e77c98a79cf69c463a4fd4340591bbc7.png
  • np.hstack() 水平拼接

50c2afe68c18ec8fb91af40bc6aebc40.png

注意

  • 水平拼接需要对应行数一致,垂直拼接需要对应列数一致。

切片

一维索引与切片

同python中的内建数据类型list一致。

注意

  • 索引默认从0开始
  • 切片左闭右开
  • 步长为整数

二维索引与切片

  • 二维数组递归方式获取
  • 二维数组逗号分隔获取(行,列)
    • 取单行 arr[x1,:]

a5ba5de8a8f6e2cadb021d4195865033.png
    • 取连续行 arr[x1:x2,:]

d71e5e335dff919bab11280090afed0e.png
    • 取分开行 arr[[x1,x2],:]

15323bfd2b5ad0ad2f2aeedc71790048.png
    • 取子矩阵 arr[x1:x2,y1:y2]

314fd00651930cd360222b4763433527.png
    • 取点 arr[[x1,x2],[y1,y2]]

7b259dbff4f08ce17301f846111d35a1.png

注意

  • 当有需要修改数组当中的值时,我们可以直接取值进行赋值。

f9c676c52c3914867cd63622175492a9.png
  • 当数组与标量进行比较时,数组当中每个元素与标量进行比较,返回bool值。与此同时,该比较也可以作为索引,被称为布尔索引。比如arr[arr>20]

2acb9323bcd9a82f0c22c4aad8901a04.png

将条件逻辑作为数组操作

numpy.where()函数是三元表达式 x if condition else y 的向量化版本。

  • np.where(condition, [x, y]) # 当满足条件,执行x,否则执行y

fd636f1782f1b0a46294add612efe7e1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值