最全Numpy教程——Array

这篇全面的教程详细介绍了NumPy库中的Array对象,包括Array的创建、索引、切片、数据类型、拷贝与视图、形状变换、迭代、连接与拆分、搜索和排序等核心概念,旨在帮助读者熟练掌握NumPy的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy教程——Array


文章目录

一.NumPy简介

1.什么是NumPy?

NumPy是一个用于处理数组的Python库。

它还具有在线性代数、傅里叶变换和矩阵域中工作的函数。

NumPy是特拉维斯·奥列芬特在2005年创建的。它是一个开源项目,可以免费使用。


2.为什么使用NumPy?

在Python中,我们有用于数组的列表,但它们的处理速度很慢。

NumPy的目标是提供一个比传统Python列表快50倍的数组对象。

NumPy中的数组对象称为ndarray,它提供了许多支持函数,使用ndarray非常容易。

数组在数据科学中非常常用,在数据科学中速度和资源非常重要。


3.为什么NumPy比Lists更快?

与列表不同,NumPy数组存储在内存中的一个连续位置,因此进程可以非常有效地访问和操作它们。

这种行为在计算机科学中称为局部性原理

这就是NumPy比列表更快的主要原因。此外,它还进行了优化,以便与最新的CPU架构一起工作。


4.NumPy使用什么语言写的?

NumPy是一个Python库,部分是用Python编写的,但是需要快速计算的大部分是用C或c++编写的。


二.初步使用NumPy

1.导入并使用
import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(arr)

结果:
在这里插入图片描述


2.查看NumPy的版本

版本字符串存储在__version__属性中。

import numpy as np

print(np.__version__)

结果:
在这里插入图片描述


三.NumPy创建数组

1.创建一个NumPyndarray对象

NumPy被用于处理数组。NumPy中的数组对象被称为ndarray

我们通过使用array()方法创建一个ndarrat对象。

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(arr)

print(type(arr))

结果:
在这里插入图片描述
要创建ndarray,我们可以将list、tuple或任何类似数组的对象传入array()方法,它将被转换为ndarray对象:

import numpy as np

arr = np.array((1, 2, 3, 4, 5))

print(arr)

结果:

在这里插入图片描述
注意:多个传递进入np.array()中的参数必须为序列。
若使用arr = np.array( 1, 2, 3, 4, 5 )则报错。

并且若使用{}传入set类型序列,则输出一个由{}所夹的numpy数组:

import numpy as np

arr = np.array( {
   1, 2, 3, 4, 5} )

print(arr)

print(type(arr))

结果:
在这里插入图片描述
传入List与Tuple的序列,输出都由[]所夹的numpy数组:
在这里插入图片描述

2. numpy数组的维度

嵌套数组:以数组作为元素的数组。

1. 0维数组

0-D数组,或称标量,是数组中的元素。数组中的每个值都是0-D数组。

import numpy as np

arr = np.array(42)

print(arr)

结果:
在这里插入图片描述

2. 1维数组

以0-D数组为元素的数组称为一维数组。

这些是最常见和最基本的数组。

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(arr)

结果上文已描述

3. 二维数组

以一维数组为元素的数组称为二维数组。

这些常被用来表示矩阵或二阶张量。

NumPy有一个专门用于矩阵操作的完整子模块,称为NumPy .mat

import numpy as np

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

print(arr)

结果:
在这里插入图片描述
注意:需要保证两个一维数组的维度一致,不然报错。

arr = np.array([[1, 2, 3], [4, 5]])#报错
4.三维数组

以二维数组(矩阵)为元素的数组称为三维数组。

这些常被用来表示一个三阶张量。

import numpy as np

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

print(arr)

结果:
在这里插入图片描述

5. 查看维度

NumPy Arrays提供了ndim属性,该属性返回一个整数,告诉我们数组有多少维度。

import numpy as np

a = np.array(42)
b = np.array([1, 2, 3, 4, 5])
c = np.array([[1, 2, 3], [4, 5, 6]])
d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])

print(a.ndim)
print(b.ndim)
print(c.ndim)
print(d.ndim)

结果:
在这里插入图片描述

6. 高维数组

数组可以有任意维数。

在创建数组时,可以使用ndmin参数定义维度的数量。

注意区别ndimndmin

import numpy as np

arr = np.array([1, 2, 3, 4], ndmin=5)

print(arr)
print('number of dimensions :', arr.ndim)

结果:
在这里插入图片描述
维度从低到高从括号外层到内层

在这个数组的维度(第5维)有4个元素(1,2,3,4),
第4维有1个向量元素,
第3维有1个矩阵元素,
第2维有1个3维数组元素,
第1维有1个4维数组的元素。


四.NumPy数组索引

1.访问(一维)数组元素

NumPy数组中的索引从0开始,这意味着第一个元素的索引为0,第二个元素的索引为1,以此类推。

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr[2] + arr[3])

结果:
在这里插入图片描述

2. 访问二维数组

要访问二维数组中的元素,可以使用逗号分隔的整数表示元素的维数和索引。

可以将二维数组想象成一个具有行和列的表,其中行表示维,索引表示列。

import numpy as np

arr = np.array([[1,2,3,4,5], [6,7,8,9,10]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值