首页 > 其他分享 >【数据分析:工具篇】NumPy(1)NumPy介绍

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

时间:2023-03-11 11:31:32浏览次数:39  
标签:数据分析 函数 科学计算 print 数组 np 工具 NumPy

(【数据分析:工具篇】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等函数来创建特定形状的数组。

np.zeros是NumPy中用于创建指定形状的全0数组的函数。 np.zeros 的基本语法如下:

np.zeros(shape, dtype=float, order='C')

其中,参数解释如下:

  • shape:数组的形状,可以是一个整数表示一维数组,或者一个元组表示多维数组。
  • dtype:可选参数,指定数组的数据类型,默认为 float
  • order:可选参数,指定数组在内存中的存储顺序,可以是 'C'(按行存储)或者 'F'(按列存储),默认为 'C'
c = np.zeros((2, 3))
print(c)

输出结果为:

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

image-20230310154940944

np.ones 是NumPy中用于创建指定形状的全1数组的函数。

np.ones 的基本语法如下:

np.ones(shape, dtype=float, order='C')

其中,参数解释如下:

  • shape:数组的形状,可以是一个整数表示一维数组,或者一个元组表示多维数组。
  • dtype:可选参数,指定数组的数据类型,默认为 float
  • order:可选参数,指定数组在内存中的存储顺序,可以是 'C'(按行存储)或者 'F'(按列存储),默认为 'C'
d = np.ones((2, 3))
print(d)

输出结果为:

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

image-20230310155032913

生成随机数。使用np.empty()生成的数组并不会被初始化为任何特定的值,因此数组的内容是未知的,可能包含任何值。

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

总结

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

标签:数据分析,函数,科学计算,print,数组,np,工具,NumPy
From: https://blog.51cto.com/u_15943369/6113404

相关文章

  • 肯天脱模剂案例研究| 先进技术带来更长的工具使用寿命
    小肯教授案例研究压铸一直是肯天的一部分压铸解决方案自始至终随着条件不断变得更加苛刻效率变得更加重要材料变得更加昂贵我们与客户一起努力发现每一种可能性本次案例研......
  • can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the t
     如何解决这个问题:TypeError:can'tconvertcuda:0devicetypetensortonumpy.UseTensor.cpu()tocopythetensortohostmemoryfirst.这个错误通常出现在试......
  • node版本控制工具nvm安装教程
    1.卸载node,后删除node文件夹里的所有内容2:安装nvm管理工具(1)下载地址:https://github.com/coreybutler/nvm-windows/releases(2)设置nvm安装目录,再设置node安装目录3......
  • .net 常用工具类收藏
    Masuit.Tools包含一些常用的操作类,大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期......
  • VScode开发者工具快捷键
    VScode开发者工具快捷键 VSCode打开文件夹与创建文件选择文件夹拖拽文件夹生成浏览器文件.html的快捷方式!+回车VSCode常用快捷键列表代码格式化:Sh......
  • 前端工具的选择与安装
    前端工具的选择与安装 前端常见开发工具工欲善其事必先利其器浏览器浏览器是我们最重要的合作伙伴 推荐选择我们推荐谷歌浏览器,有两点原因:简洁大方,打开......
  • 修改node项目自动重启 | nodemon工具包
    1、为什么使用nodemon(1)在编写调试Node.js项目的时候,如果修改了项目的代码,则需要频繁的手动close掉,然后再重新启动,非常繁琐。现在,我们可以使用nodemon工具包这个工......
  • Jmeter接口测试 2=> Jmeter工具的介绍
    第一节接口测试流程 参数化:EXCEl文件参数化、数据库参数化、直接代码中配置、配置文件 预处理请求(前置处理):对请求的参数进行预处理、准备,如加密数据、组织测试数据 发起......
  • fasttext工具的使用
    1.1认识fasttext工具学习目标了解fasttext工具的作用.了解fasttext工具的优势及其原因.掌握fasttext的安装方法.作为NLP工程领域常用的工具包,fasttext有两大作用:进行文......
  • numpy数组中根据判定条件提取索引位置
    要求:我有两个numpy类型的数组,第一个维度都是相同的,其中一个数组中都是0或者1,如果是1,则将两一个数组中的相同位置提取出来形成一个新的numpy数组可以使用numpy的boolean......