Python模块——NumPy:高效处理数组和矩阵运算

一、NumPy是什么

NumPy是Python中最重要的第三方库之一,特别是在数据科学和机器学习领域。它是一个开源的Python扩展库,支持高性能的科学计算和数据分析。一般来说,使用Python进行数据分析一定会用到NumPy。其中的ndarray类型,是在Python中进行大规模数值运算的必备类型,它可以提高Python数值运算的效率。

除此之外,NumPy还提供了很多现代、科学运算所需的函数和方法,涉及线性代数、傅里叶变换、随机数生成等等,为Python在科学计算和数据分析上提供了强大的支持。

二、如何使用NumPy

1. 安装NumPy

$ pip install numpy

2. 引入NumPy模块

import numpy as np

三、NumPy中的ndarray数组

ndarray,即N-dimensional array(多维数组),是NumPy中最重要的一个类。它是一个由相同数据类型的元素组成的基本数据结构,可以进行高效的运算。

在NumPy中,使用array()函数生成ndarray数组。

import numpy as np

# 生成一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)

# 生成二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2)

# 生成三维数组
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(arr3)

输出结果:

[1 2 3 4 5]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]

ndarray数组具有以下特点:

  • 它们的元素必须是相同类型的,如int、float、string等。
  • 它们的大小是固定的,一旦创建就不能改变。
  • 对于元素的类型,ndarray数组是占用内存最少的。

四、NumPy中的数组运算

1. 数组的加、减、乘、除

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])

# 数组的加法
print(arr1 + arr2)

# 数组的减法
print(arr2 - arr1)

# 数组的乘法
print(arr1 * arr2)

# 数组的除法
print(arr1 / arr2)

输出结果:

[ 7  9 11 13 15]
[5 5 5 5 5]
[ 6 14 24 36 50]
[0.16666667 0.28571429 0.375 0.44444444 0.5 ]

2. 数组的加、减、乘、除——广播运算

当进行数组运算时,NumPy会利用广播(broadcasting)机制,自动对不同大小的数组进行扩展,使它们的形状相同。

如下代码中,arr1是一维数组,arr2是二维数组。在计算时,NumPy会将arr1扩展成与arr2一样的形状,使它们可以进行运算。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 数组的加法(广播运算)
print(arr1 + arr2)

# 数组的减法(广播运算)
print(arr1 - arr2)

# 数组的乘法(广播运算)
print(arr1 * arr2)

# 数组的除法(广播运算)
print(arr1 / arr2)

输出结果:

[[ 2  4  6]
 [ 5  7  9]
 [ 8 10 12]]
[[ 0  0  0]
 [-3 -3 -3]
 [-6 -6 -6]]
[[ 1  4  9]
 [ 4 10 18]
 [ 7 16 27]]
[[1.         1.         1.        ]
 [0.25       0.4        0.5       ]
 [0.14285714 0.25       0.33333333]]

五、NumPy中的矩阵运算

1. 矩阵的创建

使用matrix()函数可以创建矩阵。创建矩阵时需要注意,将所有的数值用英文逗号隔开,不同行之间需要用分号隔开。

import numpy as np

# 创建3*3的矩阵mat1
mat1 = np.matrix('1, 2, 3; 4, 5, 6; 7, 8, 9')
print(mat1)

# 创建2*3的矩阵mat2
mat2 = np.matrix('1, 2, 3; 4, 5, 6')
print(mat2)

# 创建2*2的矩阵mat3
mat3 = np.matrix('1, 2; 3, 4')
print(mat3)

输出结果:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
 
[[1 2 3]
 [4 5 6]]

[[1 2]
 [3 4]]

2. 矩阵的加、减、乘

使用矩阵时,NumPy提供了特殊的运算符:+、-、*。这些运算都是基于矩阵乘法的。

import numpy as np

# 创建两个矩阵
mat1 = np.matrix('1, 2, 3; 4, 5, 6; 7, 8, 9')
mat2 = np.matrix('9, 8, 7; 6, 5, 4; 3, 2, 1')

# 矩阵的加法
print(mat1 + mat2)

# 矩阵的减法
print(mat1 - mat2)

# 矩阵的乘法
print(mat1 * mat2)

输出结果:

[[10 10 10]
 [10 10 10]
 [10 10 10]]

[[-8 -6 -4]
 [-2  0  2]
 [ 4  6  8]]

[[ 30  24  18]
 [ 84  69  54]
 [138 114  90]]

六、NumPy中的适用于数据分析的函数

NumPy除了提供运算外,还提供了适用于数据分析的各种函数。

1. sum()函数——数组元素的累加

sum()函数可以计算数组中元素的累加和。

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 计算数组的累加和
print(np.sum(arr))

输出结果:

15

2. mean()函数——数组元素的平均值

mean()函数可以计算数组中元素的平均值。

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 计算数组的平均值
print(np.mean(arr))

输出结果:

3.0

3. std()函数——数组元素的标准差

std()函数可以计算数组中元素的标准差。

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 计算数组的标准差
print(np.std(arr))

输出结果:

1.4142135623730951

七、总结

本文详细介绍了Python中NumPy模块的基本使用方法,包括如何安装NumPy、引入NumPy模块、ndarray数组的创建、数组和矩阵运算、适用于数据分析的各种函数等。NumPy是Python进行科学计算和数据分析的重要工具,掌握其基本使用方法,将有助于Python相关领域的工作。

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-18 20:03
下一篇 2024-11-19 00:36

相关推荐

  • Python导入数组

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

    编程 2025-04-29
  • Python将矩阵存为CSV文件

    CSV文件是一种通用的文件格式,在统计学和计算机科学中非常常见,一些数据分析工具如Microsoft Excel,Google Sheets等都支持读取CSV文件。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中的列表(List)来实现。具体…

    编程 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

发表回复

登录后才能评论