网站建设与管理多选题,学校建设网站的意义,国外网站的设计风格,金站网.营销型网站NumPy
在浩瀚的Python编程世界中#xff0c;有一个强大的库如星辰般璀璨#xff0c;它是数据科学家、机器学习工程师乃至量化金融分析师手中的利器——NumPy#xff0c;它以其高效的数据处理能力和便捷的矩阵运算机制#xff0c;在科研与工程领域中占据着举足轻重的地位。…
NumPy
在浩瀚的Python编程世界中有一个强大的库如星辰般璀璨它是数据科学家、机器学习工程师乃至量化金融分析师手中的利器——NumPy它以其高效的数据处理能力和便捷的矩阵运算机制在科研与工程领域中占据着举足轻重的地位。
一、NumPy初识基石的力量
NumPyNumerical Python是Python中最核心的科学计算库之一提供了一系列高级数学函数以及对多维数组和矩阵的强大支持。它的基础数据结构numpy.ndarray为海量数据的存储和操作提供了极高的效率并且无缝对接其他深度学习框架如TensorFlow、PyTorch等奠定了Python在数据分析与科学计算领域的基础地位。
二、NumPy功能领略高效魅力 快速创建和操作数组通过简单的API我们可以轻松创建各种类型的数组进行元素级操作、统计分析、排序、索引切片等任务大大提升了开发效率。 ndarray对象NumPy的核心是一个名为numpy.ndarray的N维数组对象它支持各种数据类型并且高效地存储和操作同构数据集合。 高效的数组运算NumPy中的数组支持快速的元素级数学运算、逻辑运算以及广播机制能够以接近C语言的速度进行大规模数据处理。 矩阵运算提供对矩阵的各种操作如加减乘除、转置、求逆、解线性方程组、特征值分解、奇异值分解等。 数组索引与切片类似于Python原生列表但更加灵活支持高级索引和花式索引。 统计函数包含一系列统计学相关函数例如求和、平均、中位数、标准差、最大值、最小值等。 排序和筛选可以对数组进行排序同时支持条件筛选操作。 形状变换允许改变数组的维度和大小包括reshape、flatten、squeeze、expand_dims等操作。 文件I/O支持从磁盘读写多种格式的数据如二进制、文本或图像文件。 随机数生成内置了多个分布的随机数生成器便于模拟和概率统计实验。
三、NumPy实战计算最强大脑
创建数组
arr np.array([1, 2, 3, 4, 5])
数组运算
result arr1 arr2
数学函数
result np.sin(arr)
统计功能
mean np.mean(arr)
随机数生成
random_arr np.random.rand(5)
形状操作
reshaped_arr arr.reshape(1, 4)
索引和切片
sub_arr arr[2:4]
线性代数运算
result np.dot(matrix1, matrix2)
数组拼接
concatenated_arr np.concatenate((arr1, arr2))
数组重复
repeated_arr np.repeat(arr, 3)
数组排序
sorted_arr np.sort(arr)
布尔索引
bool_indexing_arr arr[arr 3]
数组转置
transposed_arr arr.T
数组填充
filled_arr np.full((3, 3), 5)
数组切割
split_arr np.split(arr, 3)
实例1
import numpy as np# 创建一个2D数组矩阵
matrix np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix)# 对数组进行转置操作
transpose matrix.T
print(transpose)# 计算矩阵的行和列的总和
row_sums np.sum(matrix, axis1)
col_sums np.sum(matrix, axis0)
print(row_sums, col_sums)
实例2
import numpy as np # 创建一个NumPy数组
arr np.array([5, 2, 8, 1, 9]) # 对数组进行排序
sorted_arr np.sort(arr)
print(排序后的数组:, sorted_arr) # 获取排序后数组的索引
index np.argsort(arr)
print(排序后数组的索引:, index)
实例3
import numpy as np# 创建一串随机数并计算统计指标
data np.random.randn(1000) # 创建一个标准正态分布的随机数组
mean np.mean(data) # 计算平均值
median np.median(data) # 计算中位数
std_dev np.std(data) # 计算标准差
print(fMean: {mean})
print(fMedian: {median})
print(fStandard Deviation: {std_dev})
实例4
import numpy as np# 创建系数矩阵和常数向量
A np.array([[2, 1], [1, 3]])
b np.array([8, 6])# 使用numpy.linalg.solve求解Axb
solution np.linalg.solve(A, b)
print(solution)
实例5
import numpy as np# 创建两个NumPy矩阵
A np.array([[1, 2], [3, 4]])
B np.array([[5, 6], [7, 8]]) # 进行矩阵加法、减法和乘法运算
C A B
D A - B
E np.dot(A, B) print(矩阵加法结果:\n, C)
print(矩阵减法结果:\n, D)
print(矩阵乘法结果:\n, E)
实例6
from PIL import Image
import numpy as np# 加载图片为numpy数组
img Image.open(image.jpg)
img_array np.array(img)# 图像灰度化
gray_img np.dot(img_array[...,:3], [0.299, 0.587, 0.114])
gray_img gray_img.astype(np.uint8)# 将灰度图保存回文件
Image.fromarray(gray_img).save(gray_image.jpg)
实例7
np.random.rand(): 返回一个在 [0, 1) 之间的随机浮点数。
np.random.randint(low, high, size): 返回一个指定范围内的随机整数数组。
np.random.randn(d0, d1, ..., dn): 返回一个或多个标准正态分布的随机数数组。
np.random.random(size): 返回一个随机浮点数数组其值在 [0, 1) 之间。
np.random.choice(a, size, replaceTrue, pNone): 从数组 a 中随机选择元素或者使用概率 p 进行选择。
np.random.shuffle(x): 将数组 x 的元素顺序随机打乱。
np.random.permutation(x): 返回数组 x 的随机排列# 除了这些与标准库并不多的另外还有近30个各种抽取样本的np.random库函数