Numpy常用的数组操作函数
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中常用的数组操作函数,这些函数能够帮助我们更加高效、便捷地处理多维数组,大大提高了我们的编程效率。
