Python np.array函数:创建和操作Numpy数组

一、简介

numpy是Python中处理数值计算的重要库之一,提供了高效的数组(array)数据结构,方便进行向量、矩阵运算等线性代数操作。其中最基本的数据结构np.array就是本文重点介绍的对象,本文将依次从创建、基础操作、多维数组、专用函数、文件读写等角度对np.array进行详细的阐述。

二、创建数组

np.array可以从Python list或tuple创建数组,例如:

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

也可以直接传递多维list或tuple创建多维数组:

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

另外,np.zeros、np.ones、np.empty等专门用于创建特定形状数组的工厂函数也是常用的创建数组方式,例如:

a = np.zeros((3, 4))
print(a)
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

上例中,np.zeros((3, 4))将返回一个3×4全是0的数组。一些常用的特定形状数组的创建方式如下表:

函数 描述
np.zeros(shape) 返回指定形状的全0数组
np.ones(shape) 返回指定形状的全1数组
np.empty(shape) 返回指定形状的未初始化数组
np.eye(N) 返回N×N的单位矩阵
np.linspace(start, end, num) 返回start到end范围内,均匀间隔的num个值构成的数组
np.arange(start, end, step) 返回start到end范围内,步长为step的序列构成的数组

三、基础操作

一般对数组的操作都是基于数组的索引,即数组元素位置,例如:

a = np.array([10, 20, 30])
print(a[0]) #10
a[0] = 100
print(a) #[100 20 30]

此外,np.array还支持reshape、transpose、矩阵乘法等基础数学操作。

reshape是重新定义数组的形状(即由维度转换为另一维度形状),例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape((3, 2))
print(b)
[[1 2]
 [3 4]
 [5 6]]

transpose是交换数组的维度(即将原数组的行列方向互换),例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.transpose()
print(b)
[[1 4]
 [2 5]
 [3 6]]

注意:transpose函数也可使用np.transpose(a)调用。

矩阵乘法可使用@或dot函数实现:

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = a@b
print(c)
[[19 22]
 [43 50]]
d = np.dot(a, b)
print(d)
[[19 22]
 [43 50]]

四、多维数组

在多元数组中,我们需要特别注意数组的索引方式。例如,对于一个三维数组a,要取其中的(0,1,1)位置元素,可以使用a[0][1][1]、a[0,1,1]等方式。

多维数组的创建可以参考上述创建数组的方式。另外,reshape函数也可用于多维数组的形状变换。

五、专用函数

numpy库提供了大量方便数组操作的专用函数,例如对于下面的一维数组:

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

可以使用np.mean计算平均值、np.std计算标准差等专用函数:

m = np.mean(a)
print(m) #3.0
s = np.std(a)
print(s) #1.4142...

同时,在多元数组上,这些函数也有着相应的表现,例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
m = np.mean(a)
print(m) #3.5
s = np.std(a, axis=0)
print(s) #[1.5 1.5 1.5]

上例中,np.std函数在axis=0(即列方向)计算标准差,返回数组中每一列的标准差。

六、文件读写

numpy库提供了方便的读写全局变量的numpy.ndarray类型(即数组)的函数,其中最基本的函数是np.save和np.load,可以将文件保存为二进制形式文件和重新加载文件。例如,对于以下二维数组:

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

可以使用np.save保存为文件:

np.save('a.npy', a)

然后使用np.load重新加载存储为文件的数组:

b = np.load('a.npy')
print(b)
[[1, 2, 3],
 [4, 5, 6]]

注意:保存的文件具有二进制格式,因此在加载时不需要定义数组形状

结语

综上所述,numpy中的np.array函数是Python中处理高维数值计算的重要库之一,具有多种方便的数据结构和操作,可以方便地构建和操作数组。希望本文能够对读者对np.array的理解和实践有所帮助。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-19 18:57
下一篇 2024-11-19 18:57

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • Python栈操作用法介绍

    如果你是一位Python开发工程师,那么你必须掌握Python中的栈操作。在Python中,栈是一个容器,提供后进先出(LIFO)的原则。这篇文章将通过多个方面详细地阐述Pytho…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • Python导入数组

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

    编程 2025-04-29
  • 单片机打印函数

    单片机打印是指通过串口或并口将一些数据打印到终端设备上。在单片机应用中,打印非常重要。正确的打印数据可以让我们知道单片机运行的状态,方便我们进行调试;错误的打印数据可以帮助我们快速…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

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

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

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Python实现计算阶乘的函数

    本文将介绍如何使用Python定义函数fact(n),计算n的阶乘。 一、什么是阶乘 阶乘指从1乘到指定数之间所有整数的乘积。如:5! = 5 * 4 * 3 * 2 * 1 = …

    编程 2025-04-29

发表回复

登录后才能评论