欢迎访问宙启技术站
智能推送

Numpy常用的数组操作函数

发布时间:2023-06-17 20:06:02

Numpy是Python中用于科学计算的最重要的库之一,它提供了多维数组的操作以及各种数学函数和工具。本文将介绍NumPy中的一些最常用的数组操作函数。

1. numpy.zeros()

该函数用于创建一个全是0的n维数组。其语法如下:

numpy.zeros(shape, dtype=float, order='C')

其中,shape参数是一个整数元组,表示所创建的数组各个维度的大小,dtype是可选参数,表示数组元素的数据类型,order是可选参数,表示数组的存储顺序。默认情况下,存储顺序为"C"。

示例:

import numpy as np

a = np.zeros((2, 3), dtype=int)

print(a)

输出:

[[0 0 0]

 [0 0 0]]

2. numpy.ones()

该函数用于创建一个全是1的n维数组。其语法如下:

numpy.ones(shape, dtype=float, order='C')

同样,shape参数是一个整数元组,表示所创建的数组各个维度的大小,dtype是可选参数,表示数组元素的数据类型,order是可选参数,表示数组的存储顺序。默认情况下,存储顺序为"C"。

示例:

import numpy as np

a = np.ones((2, 3), dtype=int)

print(a)

输出:

[[1 1 1]

 [1 1 1]]

3. numpy.eye()

该函数用于创建一个对角线上全是1,其他位置全是0的n维数组。其语法如下:

numpy.eye(N, M=None, k=0, dtype=<class 'float'>, order='C')

其中,N是所创建数组的行数,M是可选参数,表示所创建数组的列数,默认值为N,k是可选参数,表示对角线的偏移量,默认为0,即主对角线;dtype是可选参数,表示数组元素的数据类型,order是可选参数,表示数组的存储顺序。默认情况下,存储顺序为"C"。

示例:

import numpy as np

a = np.eye(3, dtype=int)

print(a)

输出:

[[1 0 0]

 [0 1 0]

 [0 0 1]]

4. numpy.arange()

该函数用于创建一个指定范围内的一维数组。其语法如下:

numpy.arange([start,] stop[, step,][, dtype=None])

其中,start和step是可选参数,表示数组的起始值和步长,stop是必选参数,表示数组的结束值,dtype是可选参数,表示数组元素的数据类型。当start未指定时,默认为0;当step未指定时,默认为1;当dtype未指定时,NumPy会自动推断出所需的数据类型。

示例:

import numpy as np

a = np.arange(5)

print(a)

输出:

[0 1 2 3 4]

5. numpy.linspace()

该函数用于创建一个指定范围内的线性等分的n维数组。其语法如下:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

其中,start和stop是必选参数,表示数组的起始值和结束值;num是可选参数,表示数组的元素个数,默认为50;endpoint是可选参数,表示是否包含stop值,默认为True;retstep是可选参数,表示是否返回元素间的间隔,默认为False;dtype是可选参数,表示数组元素的数据类型。

示例:

import numpy as np

a = np.linspace(0, 10, num=5)

print(a)

输出:

[ 0.   2.5  5.   7.5 10. ]

6. numpy.reshape()

该函数用于改变一个数组的形状,但不改变其数据。其语法如下:

numpy.reshape(a, newshape, order='C')

其中,a是需要改变形状的数组,newshape是一个整数元组,表示所需的新形状,order是可选参数,表示数组的存储顺序。

示例:

import numpy as np

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

b = np.reshape(a, (2, 3))

print(a)

print(b)

输出:

[[1 2]

 [3 4]

 [5 6]]

 

[[1 2 3]

 [4 5 6]]

7. numpy.transpose()

该函数用于交换数组的维度。其语法如下:

numpy.transpose(a, axes=None)

其中,a是需要交换维度的数组,axes是一个整数元组,表示新的维度顺序。

示例:

import numpy as np

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

b = np.transpose(a)

print(a)

print(b)

输出:

[[1 2]

 [3 4]

 [5 6]]

 

[[1 3 5]

 [2 4 6]]

8. numpy.ravel()

该函数用于将一个多维数组展平为一维数组。其语法如下:

numpy.ravel(a, order='C')

其中,a是需要展平的数组,order是可选参数,表示数组的存储顺序。

示例:

import numpy as np

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

b = np.ravel(a)

print(a)

print(b)

输出:

[[1 2]

 [3 4]

 [5 6]]

[1 2 3 4 5 6]

9. numpy.concatenate()

该函数用于沿着给定的轴连接两个或多个数组。其语法如下:

numpy.concatenate((a1, a2, ...), axis=0)

其中,a1, a2, ...是需要连接的数组,axis是可选参数,表示连接的轴。默认为0,即沿着第一个轴连接。

示例:

import numpy as np

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

b = np.array([[5, 6]])

c = np.concatenate((a, b), axis=0)

print(c)

输出:

[[1 2]

 [3 4]

 [5 6]]

10. numpy.split()

该函数用于将一个数组沿着指定轴分割成多个子数组。其语法如下:

numpy.split(ary, indices_or_sections, axis=0)

其中,ary是需要分割的数组,indices_or_sections表示分割的位置,可以是整数,也可以是整数列表,分别表示分割的数量和位置;axis是可选参数,表示按哪个轴进行分割。默认为0,即沿着第一个轴分割。

示例:

import numpy as np

a = np.arange(9)

b = np.split(a, 3)

print(b)

输出:

[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]

以上就是一些NumPy中常用的数组操作函数,这些函数能够帮助我们更加高效、便捷地处理多维数组,大大提高了我们的编程效率。