Python 模块之 NumPy:高效操作多维数组

一、NumPy介绍

NumPy是一个基于Python语言的开源科学计算库,重点是支持数组计算。NumPy包含许多工具和函数,可以轻松地构建数组并使用它们来进行高效的数值计算。它是Python进行科学计算、数据分析和数据可视化的基础之一。与纯Python的列表相比,NumPy数组能够存储和处理更多的数据,是Python进行数据分析和处理时候的首选工具。

二、创建NumPy数组

使用NumPy创建数组可以方便而且非常灵活,可以按照特定的类型来创建、修改、处理和操作数组。使用NumPy创建数组有三种主要的方法:

1、将Python列表转换为NumPy数组。

import numpy as np
lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
print(arr)

2、使用NumPy内置的函数创建特定类型的数组。

import numpy as np
# 创建5行3列的全为0的数组
arr1 = np.zeros((5, 3))
# 创建5行3列的全为1的数组
arr2 = np.ones((5, 3))
# 创建5行3列的随机浮点数数组
arr3 = np.random.rand(5, 3)
print(arr1)
print(arr2)
print(arr3)

3、使用NumPy的arange()方法创建数字序列。使用reshape()方法可以将一维数组变成任何形状的数组。

import numpy as np
# 创建0到9的数字序列
arr1 = np.arange(10)
# 创建0到9,并将其变成5行2列的二维数组。
arr2 = np.arange(10).reshape(5, 2)
print(arr1)
print(arr2)

三、NumPy数组的基本操作

可以使用NumPy数组的基本操作进行数据的处理和运算,包括索引、切片、数组运算、聚合和重构。使用NumPy数组进行基本操作能够提高代码的效率和简化操作的复杂程度。

1、索引和切片

与Python列表类似,可以使用整数索引和切片来访问和处理数组的元素。NumPy的数组从0开始计数,数字必须小于数组的长度。

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) #输出1
print(arr[0:3]) #输出[1, 2, 3]

2、数组运算

使用NumPy的数组运算可以进行各种数学运算。所有算术运算符都可以在数组上操作,比如加、减、乘、除,以及对数、指数、三角函数、矩阵运算等。

import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])
print(arr1+arr2) #输出[ 7  9 11 13 15]
print(arr1*arr2) #输出[ 6 14 24 36 50]
print(np.sin(arr1)) #输出[ 0.84147098  0.90929743  0.14112001 -0.7568025  -0.95892427]

3、聚合函数

聚合函数用于描述数组之间的统计关系。其中最基本的聚合函数包括sum、mean、min、max、std、var、argmin、argmax等。这些函数能够方便地计算数组的统计信息,可以帮助我们更好地分析数据。

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr)) #输出15
print(np.mean(arr)) #输出3.0
print(np.max(arr)) #输出5
print(np.min(arr)) #输出1
print(np.std(arr)) #输出1.4142135623730951
print(np.argmax(arr)) #输出4

四、多维数组的创建与运算

在NumPy中,可以轻松地定义和使用多维数组。多维数组可以使用相同的方法进行索引、切片和运算,在处理更大型、更灵活的数据时非常有用。使用NumPy进行多维数组的操作能够更好地进行数据分析和处理。

1、创建多维数组

可以使用多种方式创建多维数组,如使用Python列表、数组、随机数等。可以使用NumPy提供的ndarray对象来创建多维数组。可以指定维数和大小,并使用类型关键字指定类型。

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print(arr)

2、运算

多维数组也可以进行标量计算和数组计算,比如加、减、乘、除、矩阵乘法、转置、复制等操作。可以使用相同的操作符运算符进行操作。

import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2 = np.array([[2, 2, 2], [3, 3, 3], [4, 4, 4]])
print(arr1 + arr2)
print(arr1.dot(arr2)) #矩阵乘法

五、使用NumPy进行数据分析和预处理

除了基本的数组操作和运算外,NumPy还提供了一些很方便的方法和函数来进行数据分析和预处理。比如,读取和写入数据、条件筛选、排序、去重、合并、分组和聚合等。使用NumPy进行数据处理能够使代码更加简化。

1、读取和写入数据

我们可以使用NumPy读取文件中的数据,并写入到文件中。使用genfromtxt()方法可以读取csv格式的文件,并将其转换为NumPy数组。如果需要将NumPy数组写入到文件中,可以使用savetxt()方法。

import numpy as np
# 读取csv文件
data = np.genfromtxt('data.csv', delimiter=',')
# 输出读取到的数据
print(data)
# 将NumPy数组写入到csv文件中
np.savetxt('newdata.csv', data, delimiter=',')

2、条件筛选、排序、去重和聚合

使用NumPy的条件筛选、排序、去重和聚合,能够方便地将数据进行统计分析和预处理,使得分析数据更加方便和灵活。在处理数据时,可以根据需要使用灵活的方法。

import numpy as np
# 创建一个随机数组
arr = np.random.randint(0, 10, size=10)
# 打印出这个数组
print(arr)
# 筛选出大于5的数
print(arr[arr>5])
# 将该数组排序
print(np.sort(arr))
# 去重
print(np.unique(arr))
# 计算统计信息
print(np.mean(arr))
print(np.std(arr))

六、总结

NumPy是Python用于科学计算和数据分析的基础之一。在分析数据时,NumPy提供了有助于处理多维数组的函数和工具,诸如索引、切片、运算符和聚合函数等等。通过它,我们可以轻松地创建、处理和操作多维数组,优化代码效率。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/193681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-01 15:03
下一篇 2024-12-02 09:40

相关推荐

  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • 光模块异常,SFP未认证(entityphysicalindex=6743835)——解决方案和

    如果您遇到类似optical module exception, sfp is not certified. (entityphysicalindex=6743835)的问题,那么…

    编程 2025-04-29
  • Python模块下载与安装指南

    如果想要扩展Python的功能,可以使用Python模块来实现。但是,在使用之前,需要先下载并安装对应的模块。本文将从以下多个方面对Python模块下载与安装进行详细的阐述,包括使…

    编程 2025-04-29
  • Python编程三剑客——模块、包、库

    本文主要介绍Python编程三剑客:模块、包、库的概念、特点、用法,以及在实际编程中的实际应用,旨在帮助读者更好地理解和应用Python编程。 一、模块 1、概念:Python模块…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29
  • 如何使用pip安装模块

    pip作为Python默认的包管理系统,是安装和管理Python包的一种方式,它可以轻松快捷地安装、卸载和管理Python的扩展库、模块等。下面从几个方面详细介绍pip的使用方法。…

    编程 2025-04-28
  • Python如何下载第三方模块

    想要使Python更加强大且具备跨平台性,我们可以下载许多第三方模块。下面将从几个方面详细介绍如何下载第三方模块。 一、使用pip下载第三方模块 pip是Python的软件包管理器…

    编程 2025-04-28

发表回复

登录后才能评论