一、初识numpy数组
NumPy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵计算。它可以用来存储和处理大型矩阵,比Python自带的列表(list)结构要高效得多。在numpy中,我们可以用numpy来定义和处理数组,它所支持的操作包括数学计算、逻辑运算、数组操作和操作输入输出文件等等。
import numpy as np
# 定义一维数组
a = np.array([1, 2, 3])
# 定义二维数组
b = np.array([[1, 2], [3, 4]])
二、numpy数组的形状、类型和大小
在numpy中,每个数组都有三个基本属性:形状(shape)、类型(dtype)和大小(size)。形状表示数组的维度和大小,类型表示数组的数据类型,大小表示数组元素的总数。
# 查看数组形状
print(a.shape)
print(b.shape)
# 查看数组类型
print(a.dtype)
print(b.dtype)
# 查看数组大小
print(a.size)
print(b.size)
三、numpy数组的添加元素
在使用numpy创建数组后,常常需要对已有的数组进行修改或增加元素等操作。numpy数组的添加元素操作可以分为以下几种:
1. append()函数
numpy的append()函数可以在数组末尾添加元素。需要注意的是,append()函数返回一个新的数组,原数组不会发生改变。
# 向a数组中添加元素
a = np.append(a, [4, 5, 6])
print("a数组的形状为:",a.shape)
print("a数组为:",a)
# 向b数组中添加元素
b = np.append(b, [[5, 6]], axis=0)
print("b数组的形状为:",b.shape)
print("b数组为:",b)
# 向b数组中添加元素
b = np.append(b, [[7,8,9]], axis=1)
print("b数组的形状为:",b.shape)
print("b数组为:",b)
2. insert()函数
numpy的insert()函数可以在数组指定位置插入元素。需要注意的是,insert()函数返回一个新的数组,原数组不会发生改变。
# 向a数组特定位置插入元素
a = np.insert(a, 1, [7, 8, 9])
print("a数组的形状为:",a.shape)
print("a数组为:",a)
# 向b数组特定位置插入元素
b = np.insert(b, 1, 5, axis=0)
print("b数组的形状为:",b.shape)
print("b数组为:",b)
# 向b数组特定位置插入元素
b = np.insert(b, 1, 5, axis=1)
print("b数组的形状为:",b.shape)
print("b数组为:",b)
3. concatenate()函数
numpy的concatenate()函数可以将两个数组按照指定轴连接在一起。需要注意的是,concatenate()函数返回一个新的数组,原数组不会发生改变。
c = np.array([[11, 12], [13, 14]])
print("c数组的形状为:",c.shape)
# 连接a、b、c数组
d = np.concatenate((b, c), axis=0)
print("d数组的形状为:",d.shape)
print("d数组为:",d)
4. vstack()、hstack()函数
numpy的vstack()和hstack()函数可以将多个数组垂直或水平堆叠起来。需要注意的是,vstack()和hstack()函数返回一个新的数组,原数组不会发生改变。
e = np.array([[15, 16, 17], [18, 19, 20]])
print("e数组的形状为:",e.shape)
# 垂直堆叠b、c、e数组
f = np.vstack((b, c, e))
print("f数组的形状为:",f.shape)
print("f数组为:",f)
# 水平堆叠b、c数组
g = np.hstack((b, c))
print("g数组的形状为:",g.shape)
print("g数组为:",g)
四、小结
在Python中,使用numpy创建数组和进行数组操作可以大大增强我们的效率,numpy支持了很多Python自带列表不支持的数组操作,如上述的append()、insert()、concatenate()、vstack()和hstack()等等。掌握这些操作,可以让我们更加灵活、高效地对数组进行操作。