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

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

一、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://daima100.com/21514.html

(0)
上一篇 2024-04-05
下一篇 2024-04-05

相关推荐

  • mysql索引哈希和b树_数组的索引

    mysql索引哈希和b树_数组的索引MySQL 索引结构 hash 有序数组 除了最常见的树形索引结构,Hash索引也有它的独到之处。 Hash算法 Hash本身是一种函数,又被称为散列函数。 它的思路很简单:将key放在数组里,用一个

    2023-03-18
    133
  • 华为云主机价格_性价比高的组装电脑

    华为云主机价格_性价比高的组装电脑什么云主机既能随时自助获取、可弹性伸缩,价格还不贵,一年只要39元,那必定就是华为云主机,因为其好的售后体验,华为云获得可信云电商云服务奖,云主机获五星+最高评级。下面我们来了解下华为云主机吧。 华为

    2023-05-11
    128
  • 【数据库】Oracle -[亲测有效]

    【数据库】Oracle -[亲测有效]1.Oracle数据库安装 1.1.整合PL/SQL Developer软件 1.点击Tools—>Preferences—>Connection连接,填写连接信息: 2.连接Oracle

    2023-04-15
    137
  • 关于测试开发之python的信息

    关于测试开发之python的信息软件测试人员能用python做的事情很多,最常见的就是下面四项:1)做自动化测试【web自动化,app自动化,接口自动化】;2)做性能测试;3)开发小工具;4)搭建测试平台。

    2023-10-31
    105
  • Python GUI实现用户界面交互

    Python GUI实现用户界面交互GUI全称为图形用户界面,是指通过可视化的方式,让用户和计算机进行交互的操作界面。它的出现,使得用户可以通过鼠标、键盘等视觉和触觉的方式来操作计算机,从而逐渐取代了过去的命令行界面。Python提供了多种GUI库,比如Tkinter、PyQt、wxPython等,这些库都能够轻松实现GUI界面的开发。

    2024-02-01
    81
  • 「Flink」Flink 1.9 WebUI运行作业界面分析[通俗易懂]

    「Flink」Flink 1.9 WebUI运行作业界面分析[通俗易懂]运行作业界面在以下界面中,可以查看到作业的名称、作业的启动时间、作业总计运行时长、作业一共有多少个任务、当前正在运行多少个任务、以及作业的当前状态。这里的程序:一共有17个任务,当前正在运行的是17个

    2023-01-25
    133
  • 用Python编写爬虫抓取网页内容

    用Python编写爬虫抓取网页内容随着互联网的不断发展,人们对于网络上的数据需求也越来越大。很多时候,我们需要从网页上抓取一些数据或者内容,这个时候,我们就需要使用爬虫(Spider)来实现。Python作为一门广受欢迎的编程语言,它的强大的网络编程库和简单易学的语法使得它成为了编写爬虫程序的不二之选。本文将介绍如何使用Python编写爬虫抓取网页内容。

    2024-07-23
    9
  • python员工管理系统课程设计报告_数据库管理系统的简单应用

    python员工管理系统课程设计报告_数据库管理系统的简单应用1、使用PyCharm创建Django项目 记得安装mysqlclient (1)数据库配置 我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为: DATA…

    2023-02-19
    120

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注