【Python_004】Numpy基本语法

本文介绍了Numpy库的基本用法,包括导入、ndarray的创建、类型转换、索引切片、数组运算以及唯一化操作。强调了ndarray在计算中的优势,例如元素级别的运算和高效的切片操作。同时,提到了`np.where()`函数的使用,以及`np.unique()`用于数组去重的便捷功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy

numpy: Numerical Python
高级科学计算和数据分析的基础包

常见功能1

  • ndarray, 一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具
  • 线性代数、随机数生成以及傅里叶变换功能
  • 用于集成由C、C++、Fortran等语言编写的代码的工具
numpy 导入
  import numpy as np

大家约定俗成会使用别名np

ndarray

ndarray就是N维数组,但其中元素都为同类型。计算时都是标量元素间的运算

创建ndarray
  1. 使用array方法,数据类型保存在dtype对象中
  2. arrange(),类似于range(),只不过返回ndarrary
  3. ones(),ones_like() 可创建全1的数组,前者参数放指定长度的元组,后者参数放另一个数组,one_like()形状和指定数组相同,只不过全1
  4. zeros(), zeros_like() 可创建全0数组,用法同上
  5. eye(), identity() 可创建N × N单位矩阵
ndarray类型转换

astype()

*将浮点数转换成整数时,小数部分会被截断

在这里插入图片描述
还可以使用如下:

    arr.astype(arr2.dtype) #拷贝了另个ndaray的类型
索引和切片

用法和列表类似

与列表不同点:
列表通过listname[ : ]可以返回列表副本
但naddary数组切片是原始数组的视图,不会被复制,视图上的任何修改都会直接反应到源数组上。

如要进行副本操作,需要用arr.copy()

列表基本操作可参考上一篇博:: 【Python_003】基础语法之列表

运算

ndarray 运算都是元素间的运算,不需要用for loop

普通数组运算:
在这里插入图片描述
用加号只是把两个数组简单的拼接在一起。
若要把数组中对应位置的元素相加,则需要用到for loop(如图所示),数据量一大就会又慢又卡
在这里插入图片描述
但如果使用ndarray就非常简单了。简单快速可读性还高
在这里插入图片描述

再介绍一个 np.where, 和if…else…效果差不多 但比较简洁

如图,有两个数组a,b, 还有个用来当条件的数组cond,cond中类型为boolean。当cond中为True时,取a数组,否则取b数组。

np.where() 只需要一行代码搞定

    result = np.where(cond,a,b)

在这里插入图片描述

其中a,b不一定需要是数组,标量也行,cond也可以是显式的表达式,如 arr>0, arr == 1 ,etc…

唯一化

np.unique() 可以对列表进行去重,可理解为SQL中的distinct。返回的列表会经过排序

np.unique(arr) 等价于 sorted(set(arr))

集合运算
方法说明
intersect(x,y)计算x和y中的公共元素(交集),并返回有序结果
union1d(x,y)计算x和y的并集,并返回有序结果
in1d(x,y)得到一个表示 “x的元素是否在y中” 的boolean数组
setdiff1d(x,y)集合的差,在x中但不在y中的元素

  1. 来源:《利用Python进行数据分析》 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值