本文共 2390 字,大约阅读时间需要 7 分钟。
Numpy库是一个强大的开源数学与科学计算库,它在处理数组数据方面拥有强大的功能。以下将介绍Numpy库的一些基础操作。
在使用Numpy之前,需要先进行导入。常用的方式有两种:
import numpy as np # 将numpy库作为np赋值,以便于使用np调用Numpy函数import numpy # 直接使用numpy进行操作
np.array()
是最基本的创建Numpy数组的方法:
vector = np.array([1, 2, 3, 4, 5]) # 创建一维数组matrix = np.array([[1, 2], # 创建二维数组(2x2) [3, 4], [5, 6]])cube = np.array([[[7,8,9], # 创建三维数组(2x2x3) [10,11,12]]], dtype=np.float16)
注意:cube
的理解可以与一个三维的长方体对应,其中每个维度都有具体的含义,具体由你的数据分析需求决定。
np.array
对象具有许多实用的属性,可以帮助我们更好地理解和操作数组:
dtype
:指定数组中的元素类型,默认会自动选择适合数据的最小类型。order
:指定数组元素的存储顺序,常用C
(行优先)和F
(列优先)。a.shape
:返回数组的形状(行、列...)。a.size
:返回数组的总元素个数。a.itemsize
:每个元素的字节大小。a.nbytes
:整个数组的总字节大小。a.min()
和 a.max()
:分别求出数组中的最小值和最大值。np.arange()
函数可以用来生成等差数列:
np.arange(12) #生成[0, 1, 2,..., 11]np.arange(3, 9, 1) #生成[3,4,5,6,7,8]np.arange(0, 15, 3) #生成[0, 3, 6, 9, 12]
np.ndarray
也是一个强大的工具,用于创建和描述多维数组:
# 例子:创建一个3x4的二维整数数组a = np.ndarray(shape=(3,4), dtype=int, buffer=np.arange(15).reshape(3,5))
由于buffer
属性指定了用于填充数组的源数据,可以通过这种方式快速生成特定数据类型的数组。如果不指定buffer
,Numpy会为数组中的值随机分配。
a = np.array([[1,2,3],[4,5,6]], np.float32)b = np.ndarray(shape=(3,3), dtype=np.float64)
在这个例子中,a
是从现有的列表转换而来,而b
则是通过ndarray
直接描述了数组的形状和类型。这两种方式在实际应用中会有不同的使用场景。
np.zeros()
和 np.ones()
可以快速生成全为零或全为一的数组:
# 示例:创建一个大小为3x4x5的三维零数组np.zeros(shape=(3,4,5))np.ones(shape=(3,4,5))
Numpy库提供了大量高效的数组操作函数,其中有一些更常用的工具:
执行np.dot()
是矩阵乘法的快速实现:
matrix = np.array([[1,3,4], # 定义矩阵A [2,24,5], [4,6,7]])# 举例:矩阵乘法的定义为A * Bproduct = np.dot(matrix, matrix)# 或者使用点积result = np.dot(matrix, np.array([2,3,4]))
另一个常用的函数是np.sum()
,可以对指定轴进行求和:
# 按照行或列相加matrix.sum(axis=1) # 按行求和后的结果matrix.sum(axis=0) # 按列求和后的结果
通过np.hsplit()
和 np.vsplit()
提供的函数,可以轻松地将多维数组按行或列分割:
# 假设data_shape = (10, 5)split_data = np.vsplit(data_shape, 2) # 按垂直分割成两部分# 或者按水平分割:stacked_data = np.hstack((data1, data2)) # 水平拼接两个数组
np.concatenate()
是另一个强大的函数,可以用来将多个数组沿特定轴进行合并:
a = np.array([[1,2,3], [4,5,6]])b = np.array([[7,8,9], [10,11,12]])# 按照行进行垂直合并merged_data = np.concatenate((a, b), axis=0)# 或者按列进行水平合并merged_data = np.concatenate((a, b), axis=1)
通过以上优化,可以让文章更易于搜索引擎理解,同时提升用户的阅读体验。作为Numpy库的新手,熟悉这些基础操作是非常重要的,可以为后续的数据分析和建模奠定坚实的基础。
转载地址:http://voxcz.baihongyu.com/