Numpy库的介绍及使用

这篇具有很好参考价值的文章主要介绍了Numpy库的介绍及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Numpy库入门

Numpy是一个开源的Python科学计算基础库。

  • 一个强大的N维数组对象ndarray
  • 提供广播功能函数,用来在数组之间进行计算
  • 整合C/C++/Fortran代码的工具
  • NumPy是SciPy、Pandas等数据处理或科学计算库的基础

Numpy的引用:

import numpy as np

其中 as np 为引入模块的别名,可省略或者更改,但是建议使用上述约定的别名。

1.1 数据的维度

  • 一维数据:一维数据由对等关系的有序或无序数据构成,采用线性方式组织。对应python中列表、集合类型。

  • 二维数据:二维数据由多个一维数据构成,是一维数据的组合形式。表格是典型的二维数据,其中表头是二维数据的一部分,对应python中列表类型。

  • 多维数据:多维数据由一维或者二维数据在新维度上的扩展,比如表格在时间维度上的扩展,对应python中列表类型。

  • 高维数据:高维数据仅利用最基本的二元关系展示数据间的复杂结构,对应python中字典类型或数据表示格式(JSON、XML、YAML格式)。

dict = {
	"firstName": "Richard",
	"lastName" : "Lee",
	"address"  : {
					"city"    : "长沙""zipcode" : "100081"
				}
}

1.2 ndarray的优势

python既然有列表数据类型了,并且可以表示一维数据、多维数据,为什么还需要一个ndarray数据对象(类型)呢?

举一个简单的例子:计算 A 2 + B 3 A^2 + B^3 A2+B3 ,其中 A 和 B 都是一维数组

  • 不使用Numpy:
def pySum():
	a = [0, 1, 2, 3, 4]
	b = [9, 8, 7, 6, 5]
	c = []
	for i in range (len(a)): # 需要使用for循环
		c.append(a[i]**2 + b[i]**3)
	return c
print (pySum())
  • 使用Numpy:
import numpy as np
def pySum():
	a = np.array([0, 1, 2, 3, 4])
	b = np.array([9, 8, 7, 6, 5])
	c = a**2 + b**3  # 把一维数组a,b直接当作两个基本数据进行运算
	return c
print (pySum())
  • 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
  • 设置专门的数组对象,经过优化,可以提升这类应用的运算速度
  • ndarray是一个多维数组对象,由两部分组成:
    • 实际的数据
    • 描述这些数据的元数据(数据维度、数据类型等)
    • ndarray数组一般要求所有元素类型是相同(同质)

ndarray实例

numpy库,# python常用库的介绍,numpy,python

注意:在执行12行的时候不要少了个 []
a = np.array([[1,2],[3,4]])
a = np.array([1,2],[3,4]) ❌ , 这里需要将整个列表 [[1,2],[3,4]] 转换成一个ndarray对象

1.3 ndarray对象的属性

numpy库,# python常用库的介绍,numpy,python

举例如下:

numpy库,# python常用库的介绍,numpy,python

1.4 ndarray数组的创建和变换

1.4.1 ndarray数组的创建方法

  • 从Python中的列表、元组等类型创建ndarray数组
  • 使用NumPy中函数创建ndarray数组,如:arange,ones,zeros等
  • 从字节流(raw bytes)中创建ndarray数组
  • 从文件中读取特定格式,创建ndarray数组

(1) 从Python中的列表、元组等类型创建ndarray数组

x = np.array(list/tuple)
x = np.array(list/tuple,dtype=np.float32)

当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型。

(2)使用NumPy中函数创建ndarray数组,如:arange,ones,zeros等,如下图:

numpy库,# python常用库的介绍,numpy,python

举例如下:

numpy库,# python常用库的介绍,numpy,python

注意:

  • np.arange()默认生成的是元素是整数类型的
  • np.ones()、np.zeros()、np.eyes()默认生成的是浮点类型的(可通过指定dtype改变数据类型)
  • np.ones((2,3,4)) 表示最外层有2个元素,每个元素有3个维度,每个维度下又有4个元素

在进行大规模的科学计算时常使用到的函数如下:

numpy库,# python常用库的介绍,numpy,python

numpy库,# python常用库的介绍,numpy,python

举例如下:
numpy库,# python常用库的介绍,numpy,python

注意:

  • np.linspace(1,10,4,endpoint=False)1 表示起始的位置 10 表示的是结束的位置, 4 表示有几个数字 , endpoint=False 表示不包括结束的数据。
  • numpy大部分函数默认都生成浮点数,因为用于科学计算的数据很多都是浮点类型。

1.4.2 ndarray数组维度的变换

  • .reshape(shape):不改变数组元素,返回一个shape形状的数组,原数组不变
  • .resize(shape):与 .reshape() 功能一致,但是修改原数组
  • .flatten():对数组进行降维,返回折叠后的一维数组,原数组不变

numpy库,# python常用库的介绍,numpy,python

.reshape().resize()相同点是都不改变数组元素,不同点是.reshape()不改变原数组,.resize()是修改了原数组。举例如下:

numpy库,# python常用库的介绍,numpy,python

利用 .flatten() 函数对数组进行降维,返回折叠后的一维数组,原数组不变,举例如下:

numpy库,# python常用库的介绍,numpy,python

利用astype() 函数对ndarray数组进行类型变换,astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。举例如下:

numpy库,# python常用库的介绍,numpy,python

ndarray数组向列表的转换,列表是python中最原始的数据类型,虽然运算速度比numpy慢很多,但是与原生的python语言相适应的程序中,这种转换也是十分常见的

numpy库,# python常用库的介绍,numpy,python

1.5 ndarray数组的索引和切片

  • 一维数组的索引和切片

numpy库,# python常用库的介绍,numpy,python

  • 多维数组的索引

numpy库,# python常用库的介绍,numpy,python

  • 多维数组的切片

numpy库,# python常用库的介绍,numpy,python

注意:从左到右索引时起始位置是从0开始的,从右到左索引时起始位置是从-1开始的。

1.6 ndarray数组的运算

  • 数组与标量之间的运算
    数组与标量之间的运算作用于数组的每一个元素
  • numpy一元函数

numpy库,# python常用库的介绍,numpy,python

numpy库,# python常用库的介绍,numpy,python

  • numpy二元函数

numpy库,# python常用库的介绍,numpy,python

2. 数据存取与函数

  • CSV文件(Comma-Separated Value,逗号分隔值)

numpy库,# python常用库的介绍,numpy,python

2.1 CSV存取数据

(1)CSV写入数据:np.savetxt()

np.savetxt(fname, array, fmt='%.18e', delimiter=None)
  • 参数说明:

    • fname:写入的文件、字符串或产生器,可以是.gz或bz.2的压缩文件
    • array:存入文件的数组
    • fmt:写入文件的格式,例如%d、%.2f、%.18e
    • delimiter:分割字符串,默认是任何空格
  • CSV写入数据举例

numpy库,# python常用库的介绍,numpy,python

(2)CSV读入数据:np.loadtxt()

np.loadtxt(fname, dtype=np.float, delimiter=None, unpack=False)
  • 参数说明:

    • fname:指定读入的文件来源,可以是文件、字符串或产生器,也可以是.gz或.bz2的压缩文件
    • dtype:数据类型,可选
    • delimiter:分割字符串,默认是任何空格
    • unpack:如果是True,读入属性将分别写入不同变量
  • CSV读入数据举例

numpy库,# python常用库的介绍,numpy,python

注意:CSV文件的局限性表现在只能有效存储一维和二维数组

2.2 多维数据的存取

(1)多维写入数据:tofile()

a.tofile(fname, sep='', format='%s')
  • 参数说明:

    • fname:文件、字符串
    • sep:数据分割字符串,如果是空格,写入文件为二进制
    • format:写入数据的格式
  • 多维写入数据 tofile() 举例

numpy库,# python常用库的介绍,numpy,python

注意:tofile()方法只是将数组中的元素逐一列出并输出到这个文件中,而没有包含任何的维度信息

(2)多维读入数据:np.fromfile()

np.fromfile(fname, dtype=float, count=-1, sep='')
  • 参数说明:

    • fname:文件、字符串
    • dtype:读取的数据类型
    • count:读入元素个数,-1表示读入整个文件
    • sep:数据分割字符串,如果是空串,写入文件为二进制
  • 多维读入数据 np.fromfile() 举例

numpy库,# python常用库的介绍,numpy,python

注意:该方法需要读取时知道存入文件时数组的维度和元素类型; a.tofile()和np.fromfile()需要配合使用;可以通过元数据文件来存储额外信息(尤其针对大规模数据的存取)

2.3 numpy的便捷文件存取

  • 写入数据 np.save()np.savez()
np.save(fname,array)或np.savez(fname,array)
  • 参数说明:

    • fname:文件名,以 .npy 为扩展名,压缩扩展名为 .npz
    • array:数据变量
  • 读入数据 np.load()

np.load(fname)
  • 参数说明:

    • fname:文件名,以 .npy 为扩展名,压缩扩展名为 .npz
  • np.save()np.load() 举例

numpy库,# python常用库的介绍,numpy,python

2.4 numpy随机数函数

  • np.random的随机数函数:
rand(d0,d1,...,dn)  # 均匀分布
randn(d0,d1,...,dn) # 正态分布
randint(low[,high,shape) # 指定范围
seed(s)             # 随机数种子

numpy库,# python常用库的介绍,numpy,python

  • seed(s)举例:

numpy库,# python常用库的介绍,numpy,python

2.5 numpy统计函数

numpy直接提供的统计类函数,通过 np.* 来调用,比如 np.std()、np.average()

sum(a,axis=None)  # 根据axis计算数组a相关元素之和
mean(a,axis=None) # 根据axis计算数组a相关元素的期望
average(a,axis=None,weights=None) # 根据axis计算数组a相关元素的加权平均值
std(a,axis=None) # 根据axis计算数组a相关元素的标准差
var(a,axis=None) # 根据axis计算数组a相关元素的方差

numpy库,# python常用库的介绍,numpy,python

sum()、mean()、average()、std()、var() 函数举例:

numpy库,# python常用库的介绍,numpy,python

2.6 numpy梯度函数

np.gradient(f)  # 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度

梯度函数 gradient() 举例:

numpy库,# python常用库的介绍,numpy,python文章来源地址https://www.toymoban.com/news/detail-648679.html

到了这里,关于Numpy库的介绍及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NumPy库的学习

    本文主要记录的是笔者在B站自学Numpy库的学习笔记。 创建一个二行三列的矩阵。 查看array的行数、形状、元素数量 执行结果: 其中 ndim显示的是它的行数; shape显示的是它的形状(2行3列的矩阵); size显示的是它的元素数量(6个) 执行结果: 执行结果: 执行结果 执行结

    2024年02月08日
    浏览(24)
  • 【Python 零基础入门】Numpy 常用函数 数组操作 & 数学运算

    Numpy (Numerical Python) 是 Python 编程语言的一个扩展程序库, 支持大量的维度数组与矩阵运算, 并提供了大量的数学函数库. Numpy 利用了多线程数组来存储和处理大型数据集, 从而提供了一个高效的方式来进行数值计算, 特别是对于矩阵预算和线性代数. np.assarray 可以将输入转换为

    2024年02月05日
    浏览(39)
  • 【Python 零基础入门】Numpy 常用函数 通用函数 & 保存加载

    Numpy (Numerical Python) 是 Python 编程语言的一个扩展程序库, 支持大量的维度数组与矩阵运算, 并提供了大量的数学函数库. Numpy 利用了多线程数组来存储和处理大型数据集, 从而提供了一个高效的方式来进行数值计算, 特别是对于矩阵预算和线性代数. 通用函数 (Ufuncs) 是 numpy 的核

    2024年02月05日
    浏览(54)
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    输出方式不同 里面包含的元素类型 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) np.arange() np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s 使用matplotlib.pyplot模块验证标准正态分布 np.random.randint(起始数,终止数(行,列)) 数据分析 - - - 数据清洗

    2024年02月10日
    浏览(38)
  • python实战应用讲解-【numpy数组篇】常用函数(八)(附python示例代码)

    目录 Python Numpy MaskedArray.cumprod()函数 Python Numpy MaskedArray.cumsum()函数 Python Numpy MaskedArray.default_fill_value()函数 Python Numpy MaskedArray.flatten()函数 Python Numpy MaskedArray.masked_equal()函数 numpy.MaskedArray.cumprod() 返回在给定轴上被屏蔽的数组元素的累积乘积。在计算过程中,被屏蔽的值在内部

    2024年02月02日
    浏览(41)
  • NumPy和Pandas库的基本用法,用于数据处理和分析

    当涉及到数据处理和分析时,NumPy和Pandas是两个非常常用的Python库。下面是它们的基本用法: NumPy(Numerical Python): 导入NumPy库:在代码中使用import numpy as np导入NumPy库。 创建NumPy数组:使用np.array()函数可以创建一个NumPy数组。例如,arr = np.array([1, 2, 3, 4, 5])创建一个包含整数

    2024年02月11日
    浏览(28)
  • 【python】使用numpy创建同心矩阵

    输入一个正奇数N,创建一个N*N的矩阵满足: 1. 矩阵中心的元素为N,其外层被N-1包围; 2. N-1的外层被N-2包围; 3. 依次循环,直到形成一个N*N的矩阵。 很容易可以计算得出,矩阵元素从内到外递减,最外层的元素为(N+1)/2. 我们可以使用numpy从外向内地填充矩阵;首先生成一个

    2024年02月13日
    浏览(36)
  • 【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)

    目录 一、前言 二、实验环境 三、Python容器(Containers) 0、容器介绍 1、列表(List) 1. 初始化 a. 创建空列表 b. 使用现有元素初始化列表 c. 使用列表生成式 d. 复制列表 2. 索引和切片 a. 索引 b. 负数索引 c. 切片 3. 常用操作(更新、删除) a. 更新单个元素 b. 更新切片 c. 删除单

    2024年02月09日
    浏览(40)
  • 深入探索NumPy:科学计算利器的常用函数大全【第86篇—NumPy常用函数大全】

    在数据科学和机器学习领域,NumPy(Numerical Python)模块是Python中最常用的科学计算库之一。它提供了丰富的功能,包括数组操作、数学函数、统计方法等,为数据处理和分析提供了强大的工具。本文将重点介绍NumPy模块中常用的函数,涵盖字符串处理、数学运算、算术操作、

    2024年02月20日
    浏览(33)
  • Python 使用numpy.bincount计算混淆矩阵

    Confusion matrix using numpy.bincount. np.bincount 用于统计一个非负数组中元素的出现次数。函数格式如下: 通常默认数组 x x

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包