【数据分析:工具篇】NumPy(1)NumPy介绍

NumPy介绍

NumPy(Numerical Python)是Python的一个开源的科学计算库,它主要用于处理大规模的多维数组以及矩阵操作。NumPy是在Python中进行科学计算的基础库,许多其他的科学计算库都是基于NumPy进行开发的,包括Scipy、Pandas等。

NumPy是Python中非常重要的科学计算库之一,它提供了丰富的多维数组对象、高效的向量化计算、数组操作、数组切片和索引、广播机制、矩阵计算、随机数生成、通用函数、数学函数和统计函数、数据类型转换等各种强大的功能,可以方便地进行数据处理、科学计算、统计分析和机器学习等任务。如果你想要在Python中进行数据科学或机器学习的任务,那么学习和掌握NumPy是非常有必要的。

NumPy的核心是多维数组(ndarray),它可以用来表示向量、矩阵以及更高维的数组。NumPy中的数组操作都是在底层以C语言的形式实现的,因此它非常高效。

NumPy的安装非常简单,可以通过pip命令来安装,例如:

pip install numpy

安装完成之后,就可以在Python中导入NumPy:

import numpy as np

NumPy的特点

NumPy具有以下特点一些:

  • 多维数组对象:NumPy最主要的特点是其多维数组对象ndarray,这种数组可以存储任意类型的数据,并且可以进行高效的数组计算。这种数组可以在一些数据分析和科学计算任务中替代传统的Python列表,因为它的存储和计算效率更高。
  • 内置的数据类型:NumPy支持多种数据类型,包括整型、浮点型、复数、布尔型等,可以根据不同的需求进行选择。
  • 随机数生成:NumPy中的random模块提供了各种随机数生成函数,例如rand()、randn()、randint()等,可以生成各种不同类型的随机数,这些随机数在模拟、实验和数据分析等任务中都非常有用。
  • 数据类型转换:NumPy提供了各种数据类型转换函数,可以将数组从一种数据类型转换成另一种数据类型,例如astype()函数可以将数组的数据类型转换成指定的数据类型,这些函数在数据预处理和清洗中经常使用。
  • 方便的数组索引和切片:NumPy支持各种不同的数组切片和索引方式,包括基于整数和布尔值的索引方式,以及基于轴向的索引方式,这使得数据的选择和处理变得更加方便和高效。
  • 数组操作:NumPy提供了许多用于操作数组的函数,例如:reshape、concatenate、split、flatten等等。这些函数使得数组的操作变得更加容易和灵活。
  • 通用函数:NumPy中的ufunc(通用函数)可以对数组进行逐元素操作,例如exp()、log()、sin()、cos()等等,这些函数在数学计算和科学计算中都经常使用。
  • 数学函数和统计函数:NumPy提供了各种数学函数和统计函数,例如sum()、mean()、median()、std()、var()等等,可以方便地计算数组的各种统计量和数学函数值。
  • 广播机制:广播机制是NumPy中一种非常重要的特点,它可以使得不同形状的数组进行计算时,它会自动将较小的数组进行复制和扩展,以适应较大的数组形状,避免了显式地进行循环操作,从而使得数组之间的计算变得更加方便和高效。
  • 文件输入输出:NumPy提供了各种文件输入输出函数,例如load()、save()、savetxt()等,可以方便地读取和保存多维数组数据,这些函数对于数据分析和机器学习等领域非常有用。
  • 快速、高效:NumPy是用C语言编写的,因此可以快速地执行计算,而且在内存使用方面也做了优化,所以处理大型数据集时非常高效。
  • 内存管理:NumPy提供了各种内存管理函数和方法,例如reshape()、resize()、flatten()、ravel()等,可以方便地操作数组的形状和大小,避免了不必要的内存分配和拷贝。
  • 大数据处理:NumPy中的数组可以处理大量的数据,因为它使用了连续的内存块,所以可以高效地处理大型数据集。
  • 高效的向量化计算:NumPy支持向量化计算,即在数组上进行运算,而不是在单个元素上进行计算,这种运算方式非常高效,并且可以利用现代CPU的并行计算能力。因此,如果你需要进行数组计算或矩阵计算,那么NumPy是一个非常好的选择。
  • 矩阵计算:除了多维数组的支持之外,NumPy还提供了矩阵计算相关的函数和方法,例如dot()函数可以实现矩阵乘法运算。这些函数和方法在科学计算和机器学习等领域中经常被使用。
  • 可以与其他科学计算库配合使用:NumPy与其他许多Python科学计算库(如SciPy、Pandas、Matplotlib等)兼容性良好,可以方便地与它们进行集成,实现更加复杂的科学计算任务。
  • 可视化:NumPy可以通过与Matplotlib等可视化库的集成,实现数据可视化。
  • 可扩展性:NumPy的底层代码是用C和Fortran编写的,可以通过Cython等工具将Python代码转换为C代码,从而提高代码的性能。
  • 开源和免费:NumPy是开源和免费的软件,可以在任何操作系统上使用,并且可以自由地修改和分发。

数组的基本操作

创建数组

可以使用NumPy中的array函数来创建数组,例如:

a = np.array([1, 2, 3])
print(a)

输出结果为:

[1 2 3]

image-20230310154831363

可以使用dtype参数来指定数组的数据类型:

b = np.array([1, 2, 3], dtype=float)
print(b)

输出结果为:

[1. 2. 3.]

image-20230310154905318

可以使用zerosonesempty等函数来创建特定形状的数组。

生成全为0的数组。

c = np.zeros((2, 3))
print(c)

输出结果为:

[[0. 0. 0.]
 [0. 0. 0.]]

image-20230310154940944

生成全为1的数组。

d = np.ones((2, 3))
print(d)

输出结果为:

[[1. 1. 1.]
 [1. 1. 1.]]

image-20230310155032913

生成随机数。

e = np.empty((2, 3), dtype=np.float64)
print(e)

输出结果为:

[[6.23042070e-307 3.56043053e-307 1.37961641e-306]
 [2.22518251e-306 1.33511969e-306 1.24610383e-306]]

image-20230310155704092

索引和切片

可以使用整数索引和切片来访问数组中的元素,例如:

a = np.array([1, 2, 3, 4, 5])
print(a[0])
print(a[1:3])

输出结果为:

1
[2 3]

image-20230310155816169

可以使用多维索引和切片来访问多维数组中的元素,例如:

b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(b[0, 0])
print(b[1:3, 1:3])

输出结果为:

1
[[5 6]
 [8 9]]

image-20230310155857968

数组运算

可以使用NumPy中的各种函数来对数组进行运算,例如:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a - b)
print(a * b)
print(a / b)

输出结果为:

[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4  0.5 ]

image-20230310155934193

可以使用各种函数来对数组进行操作,例如:

a = np.array([1, 2, 3])
print(np.sqrt(a))
print(np.exp(a))
print(np.sin(a))

输出结果为:

[1.         1.41421356 1.73205081]
[ 2.71828183  7.3890561  20.08553692]
[0.84147098 0.90929743 0.14112001]

image-20230310160008873

可以使用dot函数来进行矩阵乘法运算,例如:

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.dot(a, b))

输出结果为:

[[19 22]
 [43 50]]

image-20230310160057457

  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
numpy是一款开源的科学计算工具,它为Python提供了快速、高效的数值计算功能。作为一个外置函数,numpy在进行科学计算时提供了很大的便利。 首先,numpy提供了多维数组对象ndarray,它是numpy的核心数据结构。通过ndarray,我们可以方便地进行各种数值计算,如基本的数学运算、统计分析、线性代数运算等。ndarray不仅具有高效的存储和操作性能,还可以通过广播机制实现数组之间的一对一运算,进一步提高计算效率。 其次,在科学计算中,我们经常需要处理大量的数据。numpy提供了优化的向量化运算,可以有效地处理大规模数据,并且摆脱了Python原生列表的循环操作,提高了运算速度。同时,numpy还提供了丰富的数学函数和随机数生成函数,方便了在科学计算中的各种数学操作和模拟实验。 另外,numpy也支持数据的读取和存储,可以方便地与其他文件格式进行交互。比如,我们可以通过numpy将数据存储为文本文件、二进制文件或者导出为其他数据格式。这对于科学研究中的数据处理和结果保存非常重要。 总之,numpy作为一款外置函数,为Python提供了强大的科学计算功能。它的多维数组对象和优化的向量化运算使得科学计算更加高效、便捷。同时,它丰富的数学函数和数据读取功能也为科学研究和数据处理提供了很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wux_labs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值