【python】numpy库


简单介绍

NumPy(Numerical Python的简称)是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。

  • NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象。NumPy的C语言编写的算法库可以操作内存,而不必进行类型检查或其它前期工作。比起Python的内置序列,NumPy数组使用的内存更少。
  • NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。
  • 基于NumPy的算法要比纯Python快10到100倍(甚至更快),并且使用的内存更少。

功能示例代码

  1. ndarray:一种多维数组对象
    ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象):
    在这里插入图片描述2. 创建ndarray
    在这里插入图片描述
    在这里插入图片描述

  2. 数据类型astype()方法明确地将一个数组从一个dtype转换成另一个dtype
    在这里插入图片描述
    【调用astype总会创建一个新的数组(一个数据的备份),即使新的dtype与旧的dtype相同。】

  3. 运算
    大小相等的数组之间的任何算术运算都会将运算应用到元素级:
    在这里插入图片描述

  4. 基本的索引和切片

(1)一维数组
在这里插入图片描述

跟列表最重要的区别在于,数组切片是原始数组的视图。这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上:
在这里插入图片描述(2)高维数组
在这里插入图片描述
二维数组的索引方式:轴0作为行,轴1作为列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述(3)布尔型索引

在这里插入图片描述在这里插入图片描述常用:将data中的所有负值都设置为0
在这里插入图片描述还有其他的都可以利用
在这里插入图片描述在这里插入图片描述

  1. 数组转置和轴对换

转置是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作)
在这里插入图片描述

  1. 利用np.dot计算矩阵内积:

在这里插入图片描述
通用函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 利用数组进行数据处理

numpy.where(condition, x, y)是三元表达式x if condition else y
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述
用于布尔型数组的方法:
在这里插入图片描述

  1. 排序

在这里插入图片描述在这里插入图片描述

  1. 唯一化以及其它的集合逻辑
    NumPy提供了一些针对一维ndarray的基本集合运算。最常用的可能要数np.unique了,它用于找出数组中的唯一值并返回已排序的结果:
    在这里插入图片描述等价于:
sorted(set(names))

函数np.in1d用于测试一个数组中的值在另一个数组中的成员资格,返回一个布尔型数组:
在这里插入图片描述在这里插入图片描述

  1. 用于数组的文件输入输出
    np.savenp.load是读写磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的:
arr = np.arange(10)
np.save('some_array', arr)
arr_save = np.load('some_array.npy')

通过np.savez可以将多个数组保存到一个未压缩文件中,将数组以关键字参数的形式传入即可:

np.savez('array_archive.npz', a=arr, b=arr2)
arch = np.load('array_archive.npz')
arr2_save = arch['b']
  1. 线性代数
    后面用到在看:
    在这里插入图片描述
  2. 伪随机数生成

在这里插入图片描述我们说这些都是伪随机数,是因为它们都是通过算法基于随机数生成器种子,在确定性的条件下生成的。你可以用NumPy的np.random.seed更改随机数生成种子:np.random.seed(1234)
在这里插入图片描述在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值