Numpy 2D Array 深入解析
Numpy 是 Python 中一个强大的数值计算扩展库,广泛应用于数据分析、科学计算和工程领域。本文将详细介绍 Numpy 2D array(二维数组)的创建、操作和应用,通过具体的示例代码来展示其功能和用法。
1. 创建二维数组
在 Numpy 中,二维数组可以通过多种方式创建,包括从列表转换、使用内置函数等。
示例代码 1:从列表创建二维数组
import numpy as np
# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d)
Output:
示例代码 2:使用 np.zeros
创建二维数组
import numpy as np
# 创建一个2x3的全0二维数组
zeros_array = np.zeros((2, 3))
print(zeros_array)
Output:
示例代码 3:使用 np.ones
创建二维数组
import numpy as np
# 创建一个3x2的全1二维数组
ones_array = np.ones((3, 2))
print(ones_array)
Output:
示例代码 4:使用 np.full
创建具有固定值的二维数组
import numpy as np
# 创建一个2x2的全5二维数组
full_array = np.full((2, 2), 5)
print(full_array)
Output:
2. 访问二维数组元素
访问二维数组元素是数据处理中的基本操作,可以通过索引和切片来实现。
示例代码 5:通过索引访问二维数组元素
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 访问第一行第二列的元素
element = array_2d[0, 1]
print(element)
Output:
示例代码 6:通过切片访问二维数组的子数组
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 获取前两行的前两列
sub_array = array_2d[:2, :2]
print(sub_array)
Output:
3. 修改二维数组
修改二维数组的元素或结构是数据处理中常见的需求。
示例代码 7:修改二维数组中的元素
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 修改第一行第二列的元素
array_2d[0, 1] = 20
print(array_2d)
Output:
示例代码 8:修改二维数组的形状
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 重新调整数组形状为(3, 2)
new_shape = array_2d.reshape(3, 2)
print(new_shape)
Output:
4. 二维数组的运算
Numpy 提供了丰富的数学函数来支持数组的运算,包括加法、减法、乘法等。
示例代码 9:二维数组的加法
import numpy as np
array_1 = np.array([[1, 2], [3, 4]])
array_2 = np.array([[5, 6], [7, 8]])
# 两个数组相加
result_add = np.add(array_1, array_2)
print(result_add)
Output:
示例代码 10:二维数组的点乘
import numpy as np
array_1 = np.array([[1, 2], [3, 4]])
array_2 = np.array([[5, 6], [7, 8]])
# 两个数组的点乘
result_dot = np.dot(array_1, array_2)
print(result_dot)
Output:
5. 二维数组的统计运算
统计运算是数据分析中不可或缺的部分,Numpy 提供了多种统计函数来帮助处理数据。
示例代码 11:计算二绑数组的总和
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 计算所有元素的总和
total_sum = np.sum(array_2d)
print(total_sum)
Output:
示例代码 12:计算二维数组的平均值
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 计算所有元素的平均值
mean_value = np.mean(array_2d)
print(mean_value)
Output:
6. 二维数组的广播
广播(Broadcasting)是 Numpy 中一种强大的机制,允许不同形状的数组进行算术运算。
示例代码 13:二维数组与一维数组的广播
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
array_1d = np.array([1, 0, 1])
# 二维数组和一维数组相加
broadcasted_array = array_2d + array_1d
print(broadcasted_array)
Output:
7. 二维数组的堆叠与分割
在处理多个数组时,经常需要将它们堆叠成一个更大的数组,或者将一个大数组分割成多个小数组。
示例代码 14:堆叠两个二维数组
import numpy as np
array_1 = np.array([[1, 2], [3, 4]])
array_2 = np.array([[5, 6], [7, 8]])
# 垂直堆叠
stacked_array = np.vstack((array_1, array_2))
print(stacked_array)
Output:
示例代码 15:水平分割二维数组
import numpy as np
array_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
# 水平分割成两部分
split_arrays = np.hsplit(array_2d, 2)
print(split_arrays[0])
print(split_arrays[1])
Output:
8. 二维数组的线性代数运算
Numpy 提供了一系列函数来支持线性代数运算,如矩阵乘法、求逆、行列式等。
示例代码 16:二维数组的矩阵乘法
import numpy as np
array_1 = np.array([[1, 2], [3, 4]])
array_2 = np.array([[5, 6], [7, 8]])
# 矩阵乘法
matrix_product = np.matmul(array_1, array_2)
print(matrix_product)
Output:
示例代码 17:计算二维数组的行列式
import numpy as np
array_2d = np.array([[1, 2], [3, 4]])
# 计算行列式
determinant = np.linalg.det(array_2d)
print(determinant)
Output:
示例代码 18:计算二维数组的逆矩阵
import numpy as np
array_2d = np.array([[1, 2], [3, 4]])
# 计算逆矩阵
inverse_matrix = np.linalg.inv(array_2d)
print(inverse_matrix)
Output:
9. 二维数组的排序
Numpy 提供了多种排序算法,包括快速排序、归并排序、堆排序等。
示例代码 19:对二维数组进行排序
import numpy as np
array_2d = np.array([[5, 1, 7], [8, 2, 6]])
# 对每一行进行排序
sorted_array = np.sort(array_2d)
print(sorted_array)
Output:
10. 二维数组的文件操作
Numpy 提供了方便的文件读写函数,可以将二维数组保存到文件,或从文件中读取数据。
示例代码 20:将二维数组保存到文件
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 保存到文件
np.savetxt('numpyarray.com.txt', array_2d)
示例代码 21:从文件中读取二维数组
import numpy as np
# 从文件中读取数据
array_2d = np.loadtxt('numpyarray.com.txt')
print(array_2d)
Output:
以上就是 Numpy 二维数组的详细介绍,包括创建、访问、修改、运算、统计、广播、堆叠与分割、线性代数运算、排序和文件操作等内容。