Python语言一直以来都被视作数据科学和机器学习领域的主要工具之一。Python内置的数据结构如列表、元组、字典等可以方便地操作数据,但对于大规模数据的处理,它们的效率并不高,因此诞生了NumPy库。NumPy(Numeric Python)是Python科学计算的核心库,它是一个开源的Python扩展库,支持高效处理多维数组和矩阵运算。
NumPy数组是一个由同类型元素组成的多维数组,它可以是一维数组也可以是多维数组。创建一个NumPy数组可以通过Python列表或元组传递给NumPy数组构造函数。
import numpy as np
# 一维数组
arr1 = np.array([1, 2, 3])
print(arr1)
# 多维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
NumPy数组的索引方式与Python列表类似,可以通过下标访问数组中的元素,也可以使用切片操作选择数组的子集。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) # 输出结果为1
print(arr[-1]) # 输出结果为5
print(arr[1:3]) # 输出结果为[2 3]
在NumPy中,数组的维度和形状对计算非常重要。可以使用NumPy数组的shape和ndim属性来获取数组的形状和维度。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 输出结果为(2, 3)
print(arr.ndim) # 输出结果为2
NumPy数组对象提供了各种操作数组的方法,包括转置、元素排序、搜索、数学和逻辑运算等。下面是一些常用的数组方法:
import numpy as np
arr = np.array([1, 3, 2, 5, 4])
# 数组排序
print(np.sort(arr)) # 输出结果为[1 2 3 4 5]
# 数组翻转
print(np.flip(arr)) # 输出结果为[4 5 2 3 1]
# 数组求和、均值、方差、标准差等
print(np.sum(arr)) # 输出结果为15
print(np.mean(arr)) # 输出结果为3.0
print(np.var(arr)) # 输出结果为2.0
print(np.std(arr)) # 输出结果为1.4142135623730951
NumPy不仅支持一般的数学运算和数组运算,还支持矩阵运算。通过NumPy可以轻松地执行矩阵的加、减、乘、转置和求逆等运算。
首先,创建NumPy数组。
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
加减法:
print(arr1 + arr2) # 输出结果为[[ 6 8][10 12]]
print(arr1 - arr2) # 输出结果为[[-4 -4][-4 -4]]
乘法:
print(np.dot(arr1, arr2)) # 输出结果为[[19 22][43 50]]
转置:
print(arr1.T) # 输出结果为[[1 3][2 4]]
print(arr2.T) # 输出结果为[[5 7][6 8]]
求逆:
arr3 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 8]])
arr3_inv = np.linalg.inv(arr3)
print(arr3_inv)
以上就是NumPy库中数组创建、索引等基础知识和矩阵运算知识的介绍。
标签: 网络攻击