国内响应式网站欣赏,哪些网站可做矿机期货,wordpress评论表情不显示不出来,学平面设计网上哪个培训好文章目录 1.1 创建和操作 Numpy 数组1.1.1 基础知识1.1.2 完整案例#xff1a;多维数据分析1.1.3 拓展案例 1#xff1a;时间序列数据1.1.4 拓展案例 2#xff1a;图像数据处理 1.2 数组的索引和切片1.2.1 基础知识1.2.2 完整案例#xff1a;时间序列分析1.2.3 拓展案例 1多维数据分析1.1.3 拓展案例 1时间序列数据1.1.4 拓展案例 2图像数据处理 1.2 数组的索引和切片1.2.1 基础知识1.2.2 完整案例时间序列分析1.2.3 拓展案例 1多维数据访问1.2.4 拓展案例 2多条件筛选 1.3 数学运算基础1.3.1 基础知识1.3.2 完整案例数据标准化1.3.3 拓展案例 1二维数组的运算1.3.4 拓展案例 2矩阵运算 1.1 创建和操作 Numpy 数组
1.1.1 基础知识
欢迎踏入 Numpy 数组的世界首先让我们了解一下 Numpy 数组的基础。Numpy 数组也称为 ndarray是 Python 中用于存储和处理大型数据集的核心。它们比 Python 原生的列表更快、更强大。在 Numpy 中我们主要处理同质数据类型这就是 Numpy 高效的秘密之一。
数组可以有不同的维度一维数组像列表二维数组像矩阵更高维度的数组在数据科学中也非常常见。创建数组最简单的方法是使用 np.array() 函数并传递一个列表或列表的列表作为参数。
1.1.2 完整案例多维数据分析
假设你是一名数据科学家需要分析一组三维数据。我们的数据集是一个三维数组每个维度代表一个不同的属性。
import numpy as np# 创建一个三维 Numpy 数组
data np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[10, 11, 12], [13, 14, 15], [16, 17, 18]],[[19, 20, 21], [22, 23, 24], [25, 26, 27]]
])# 计算所有元素的总和
total_sum data.sum()
print(Total Sum:, total_sum)# 计算第二维度的平均值
mean_dim2 data.mean(axis1)
print(Mean along the second dimension:\n, mean_dim2)在这个案例中我们首先创建了一个三维数组。接着我们使用 sum() 方法计算了整个数组的总和然后使用 mean() 方法沿着第二个维度记住维度是从 0 开始计数的计算平均值。
1.1.3 拓展案例 1时间序列数据
现在假设你有一组时间序列数据记录了一周每天的最高温度和最低温度。我们将使用 Numpy 来分析这些数据。
# 一周的最高温度和最低温度
temperatures np.array([[30, 20], # 周一[31, 21], # 周二[32, 22], # 周三[33, 23], # 周四[34, 24], # 周五[35, 25], # 周六[36, 26] # 周日
])# 计算每天的温差
daily_temp_range temperatures[:, 0] - temperatures[:, 1]
print(Daily Temperature Range:, daily_temp_range)# 计算整周的平均最高温度
avg_high temperatures[:, 0].mean()
print(Average High:, avg_high)在这个案例中我们创建了一个二维数组来存储一周的温度数据。然后我们计算了每天的温差和整周的平均最高温度。
1.1.4 拓展案例 2图像数据处理
最后让我们看一个更高级的例子图像数据处理。图像可以表示为三维 Numpy 数组其中的维度分别代表高度、宽度和颜色通道。
# 假设我们有一个 64x64 像素的RGB图像
image np.random.randint(0, 256, (64, 64, 3))# 将图像转换为灰度
gray_image np.mean(image, axis2)
print(Grayscale Image Shape:, gray_image.shape)在这个案例中我们模拟了一个 64x64 像素的 RGB 图像
使用随机数生成。每个像素有三个颜色通道红色、绿色和蓝色。我们通过计算三个颜色通道的平均值将图像转换为灰度。
这三个案例展示了 Numpy 数组在不同应用场景中的强大功能。从基础的数组操作到复杂的数据分析和图像处理Numpy 都是处理和分析数据的有力工具。随着你的进一步探索你将发现更多令人兴奋的使用方式 1.2 数组的索引和切片
1.2.1 基础知识
在 Numpy 数组的世界里索引和切片是获取和操作数据的核心技巧。就像在 Python 列表中一样你可以通过索引访问数组中的特定元素。不过Numpy 带来了更多的功能特别是在处理多维数组时。
索引Indexing它允许你访问数组的单个元素。比如array[2, 3] 会访问第三行第四列的元素因为索引从0开始。
切片Slicing它提供了获取数组子集的方法。切片使用冒号 : 符号比如 array[1:4, 0:2] 将选取第二到第四行和第一到第二列的元素。
布尔索引Boolean Indexing这是一种高级索引方式允许你根据条件选择数组中的元素。
1.2.2 完整案例时间序列分析
假设你是一名数据分析师需要从一组存储在 Numpy 数组中的时间序列数据中提取特定的信息。这组数据记录了一段时间内每天的股市开盘价。
import numpy as np# 10天的股市开盘价
stock_prices np.array([120, 122, 121, 123, 124, 123, 125, 126, 127, 128])# 获取第五天的股价
day_5_price stock_prices[4]
print(Day 5 price:, day_5_price)# 获取第三天到第七天的股价
week_prices stock_prices[2:7]
print(Prices from day 3 to 7:, week_prices)# 假设我们想找出价格超过125的日子
high_price_days stock_prices 125
print(Days with price over 125:, stock_prices[high_price_days])这个案例中我们首先访问了特定的一天的股价然后通过切片获取了一个时间段内的股价最后使用了布尔索引来找出特定条件下的数据。
1.2.3 拓展案例 1多维数据访问
让我们假设你现在有一个二维的数据集表示的是一个班级中学生在不同科目的分数。
# 5名学生在3门科目上的分数
scores np.array([[88, 92, 80],[87, 90, 78],[95, 85, 88],[90, 90, 92],[85, 87, 85]
])# 访问第三个学生的数学分数第三列
math_score_student_3 scores[2, 2]
print(Math score of student 3:, math_score_student_3)# 获取前三个学生的英语和数学分数
english_math_scores scores[0:3, 0:2]
print(English and Math scores of first three students:\n, english_math_scores)在这个案例中我们处理了一个二维数组首先访问了特定学生的特定科目分数然后通过切片获取了部分学生在两门科目上的分数。
1.2.4 拓展案例 2多条件筛选
假设你在处理一组关于房地产的数据需要根据多个条件筛选房源。
# 假设数组中的每行代表一处房产列分别是价格万元、面积平方米、卧室数量
properties np.array([[300, 70, 2],[400, 80, 3],[500, 90, 3],[600, 100, 4],[700, 110, 4]
])# 找出价格小于600万且卧室数量不少于3的房产
affordable_properties properties[(properties[:, 0] 600) (properties[:, 2] 3)]
print(Affordable properties:\n, affordable_properties)在这个案例中我们使用了布尔索引和逻辑运算符来实现多条件筛选。这种方式在处理复杂数据集时非常有用可以帮助我们快速找到符合特定条件的数据子集。
通过这些案例你可以看到 Numpy 在数组索引和切片方面的强大功能。无论是单条件还是多条件筛选一维还是多维数组Numpy 都为数据的获取和操作提供了灵活而强大的工具。随着你不断深入学习你将能够解锁更多数据处理的秘密 1.3 数学运算基础
1.3.1 基础知识
Numpy 为数值计算提供了一个强大且高效的平台。它支持各种数学运算包括但不限于基本的算术运算、统计运算、线性代数运算等。在 Numpy 中这些运算通常是元素级别的意味着它们将对数组中的每个元素单独应用。
基本算术运算包括加法、减法-、乘法*和除法/。这些运算可以直接应用于数组。
统计运算如求和sum、求平均值mean、最大值max和最小值min等这些都是分析数据集时常用的运算。
线性代数运算Numpy 支持多种线性代数运算如矩阵乘法、矩阵转置、求逆等。
1.3.2 完整案例数据标准化
数据标准化是数据预处理中的一个重要步骤。假设你有一组数值数据你需要将其标准化使均值为 0标准差为 1。
import numpy as np# 假设有一组数据
data np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])# 计算均值和标准差
mean data.mean()
std data.std()# 执行标准化
normalized_data (data - mean) / std
print(Normalized Data:, normalized_data)在这个例子中我们首先计算了数据的均值和标准差然后使用这些统计数据将原始数据标准化。
1.3.3 拓展案例 1二维数组的运算
考虑一个场景你需要处理一个二维数据集比如一组学生的多门科目成绩并计算每门科目的平均分。
# 5名学生的3门科目分数
scores np.array([[70, 80, 90],[88, 78, 92],[85, 87, 91],[90, 91, 89],[95, 92, 88]
])# 计算每门科目的平均分
subject_means scores.mean(axis0)
print(Average scores per subject:, subject_means)在这个案例中我们计算了每门科目每列的平均分数使用了 axis0 来指定沿着行的方向即跨列进行运算。
1.3.4 拓展案例 2矩阵运算
假设你在处理一些线性代数问题需要计算矩阵的逆或执行矩阵乘法。
# 创建一个矩阵
A np.array([[1, 2],[3, 4]
])# 计算矩阵的逆
A_inv np.linalg.inv(A)
print(Inverse of Matrix A:\n, A_inv)# 创建另一个矩阵
B np.array([[2, 0],[0, 2]
])# 执行矩阵乘法
product np.dot(A, B)
print(Product of A and B:\n, product)这个案例展示了如何计算一个矩阵的逆以及如何执行两个矩阵之间的乘法。这些操作在科学和工程计算中非常重要。
通过这些案例你可以看到 Numpy 在数学运算方面的能力。从简单的数组操作到复杂的线性代数问题Numpy 都能提供高效且易于使用的解决方案。掌握了这些基础知识后你就可以在更复杂的数据分析和科学计算任务中运用这些技能了。