Python数据分析三剑客——NumPy详解

NumPy基础

一.数组基础

整数和浮点数相互转换(astype)

image-20240122093113904

数组维度(.shape和.reshape)

  • ones((2,5))是创建一个两行五列的全是一的数组
  • arange(10)是创建一个从0到9的一维数组
  • 一维数组称之为向量,二维数组成为矩阵

image-20240122093441311

二.数组的创建

创建数组

image-20240122094111389

创建同值数组,ones,zeros

image-20240122094131693

随机数组

image-20240122095603282

三.数组的索引

向量的花式索引

  • 下图表示先创建一个从0到90(左闭右开),步长为10的向量
  • 第二句表示选取向量之中第0个和第2个索引的元素(注意括号是两个,一般如果只有一个中括号,那么里面不能出现两个值,只能出现一个值代表选取一个元素

image-20240123085617897

矩阵的花式索引

  • 下图表示创建一个从1到17(左闭右开)的矩阵,然后变成4*4的矩阵
  • 第二句也有两个中括号,两个
    • 第一个中括号规定行,第二个中括号规定列,比如In[30]表示分别选取第0行第0列的元素,和第2行第二列的元素
    • In[31]表示选取第一行第二列的元素和第二行第三列的元素

image-20240123090058982

  • 下图的例子中,一个括号里面有三个值,代表选取三个元素

image-20240123090306847

向量的切片

image-20240123090958519

矩阵的切片

image-20240123091339339

提取矩阵的行和列

  • 提取矩阵的行

image-20240123091514945

  • 提取矩阵的列

image-20240123091808054

数组的切片仅仅是视图

  • 与 Python 列表和 Matlab 不同,NumPy 数组的切片仅仅是原数组的一个视图。换言之,NumPy 切片并不会创建新的变量

image-20240123092237049

  • 如果需要对切片进行拷贝,就需要==arr.copy()==方法创建一个新切片

image-20240123092539841

数组的赋值仅仅是绑定

  • 数组的赋值仅仅是绑定,也就是如果出现 arr1=arr2,那么修改arr1的值,arr2也会跟着修改,两者是通过一个东西
  • 如果要创建新的数组变量,那么就需要在赋值的时候运用arr.copy()方法

image-20240123092633970

四.数组的变形

转置

arr.T

数组的转置方法为 .T,其只对矩阵有效,因此遇到向量要先将其转化为矩阵。

image-20240123100731897

(左右/上下)翻转

  • 注意是arr2 = np.fliplr(arr1)

数组的翻转方法有两个,一个是**上下翻转的 np.flipud( ) ,表示 up-down**;一个是**左右翻转的 np.fliplr( ),表示 left-right**。其中,向量只能使用 np.flipud( ),在数学中,向量并不是横着排的,而是竖着排的。

image-20240123101343654

数组的重塑

arr.reshape()

image-20240123101611300

数组的拼接

  • concatenate([],[],axis=) concatenate(arr1,arr2,axis=)

image-20240123102038117

  • 默认参数axis=0表示在行的方向上合并,axis=1表示在列的方向上合并

数组的分裂

np.split()

image-20240123102347407

  • 在行方向上合并

image-20240123103129155

  • 在列方向上合并

image-20240123103148694

五.数组的运算

普通运算

image-20240123103436328

image-20240123103444527

广播

  • 向量广播为矩阵

image-20240123104750755

  • 列矩阵广播为矩阵

image-20240123105006046

  • 行列矩阵同时被广播

image-20240123105027450

六.数组的函数

np.dot(arr1,arr2)

向量与向量的乘积

image-20240123110309905

向量与矩阵的乘积

image-20240123110319015

矩阵与向量的乘积

image-20240123110327031

矩阵与矩阵的乘积

image-20240123110333873

数学函数

image-20240123112537244

聚合函数

  • axis=0维度x轴 表示按照行方向打印结果
  • axis=1维度y轴 表示按照列方向打印结果
  • np.sum求和
  • np.prod求积

image-20240123112620922

七.布尔型数组

创建布尔型数组

image-20240123232006248

布尔型数组中True的数量

image-20240124000906627

布尔型数组作为掩码

image-20240124000917885

满足条件的元素所在的位置

image-20240124000925341

八.从数组到张量

数组与张量

image-20240124000833424

语法不同点

image-20240124000842397

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值