当前位置: 首页 > news >正文

Numpy 数组操作:高效的数据处理利器

在数据分析和科学计算领域,Numpy 是 Python 中不可或缺的库之一。它提供了强大的多维数组对象以及大量用于操作这些数组的函数。本文将详细介绍 Numpy 数组的基本操作,包括数组的创建、索引、切片、形状变换、数组运算等,帮助你快速掌握 Numpy 的核心功能。

一、Numpy 数组的创建

Numpy 提供了多种创建数组的方法(前面有具体写过),最常用的是通过 numpy.array() 函数。

import numpy as np# 从列表创建数组
list_data = [1, 2, 3, 4, 5]
array_from_list = np.array(list_data)
print("从列表创建的数组:", array_from_list)# 创建多维数组
nested_list = [[1, 2, 3], [4, 5, 6]]
multi_dim_array = np.array(nested_list)
print("多维数组:\n", multi_dim_array)

注释:

  • np.array() 是创建数组的核心函数,它接受一个可迭代对象作为输入。

  • 多维数组可以通过嵌套列表创建。

二、数组的基本属性

Numpy 数组具有多个重要属性,如形状(shape)、维度(ndim)和数据类型(dtype)。

# 查看数组属性
print("数组形状:", multi_dim_array.shape)  # 输出 (2, 3)
print("数组维度:", multi_dim_array.ndim)   # 输出 2
print("数组数据类型:", multi_dim_array.dtype)  # 输出 int64

注释:

  • shape 属性返回一个元组,表示数组的维度大小。

  • ndim 表示数组的维度数量。

  • dtype 表示数组中元素的数据类型。

三、数组的索引与切片

Numpy 数组的索引和切片与 Python 列表类似,但功能更强大。

# 一维数组索引
print("一维数组索引:", array_from_list[2])  # 输出 3# 多维数组索引
print("多维数组索引:", multi_dim_array[1, 2])  # 输出 6# 一维数组切片
print("一维数组切片:", array_from_list[1:4])  # 输出 [2, 3, 4]# 多维数组切片
print("多维数组切片:\n", multi_dim_array[:, 1:3])  # 输出 [[2, 3], [5, 6]]

注释:

  • 一维数组的索引和切片与 Python 列表类似。

  • 多维数组的索引需要使用多个索引值,切片操作可以通过 : 来指定范围。

四、数组的形状变换

Numpy 提供了多种方法来改变数组的形状,而不会改变其数据。

# 改变数组形状
original_array = np.array([1, 2, 3, 4, 5, 6])
reshaped_array = original_array.reshape(2, 3)
print("改变形状后的数组:\n", reshaped_array)# 转置数组
transposed_array = reshaped_array.T
print("转置后的数组:\n", transposed_array)

注释:

  • reshape() 方法可以将数组重新组织成指定的形状。

  • T 属性可以快速转置数组。

五、数组的运算

Numpy 数组支持元素级的运算,这使得它在处理大规模数据时非常高效。

# 数组加法(对应位置相互运算)
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
result_add = array1 + array2
print("数组加法:", result_add)  # 输出 [5, 7, 9]# 数组乘法(对应位置相互运算)
result_mul = array1 * array2
print("数组乘法:", result_mul)  # 输出 [4, 10, 18]# 广播机制(“转换成”对应位置相互运算)
array3 = np.array([[1, 2, 3], [4, 5, 6]])
scalar = 2
result_broadcast = array3 + scalar
print("广播机制:\n", result_broadcast)

注释:

  • Numpy 数组的加法和乘法是元素级的。

  • 广播机制允许较小的数组在运算中自动扩展为较大的数组。

六、数组的统计方法

Numpy 提供了许多统计方法,如求和、平均值、最大值等。

# 求和
print("数组求和:", array3.sum())  # 输出 21# 平均值
print("数组平均值:", array3.mean())  # 输出 3.5# 最大值
print("数组最大值:", array3.max())  # 输出 6# 按轴操作
print("按轴求和:", array3.sum(axis=1))  # 输出 [6, 15]

注释:

  • sum()mean()max() 等方法可以对整个数组进行统计。

  • 使用 axis 参数可以指定按行或按列进行操作。

七、数组的布尔索引

布尔索引是 Numpy 的强大功能之一,它允许我们根据条件筛选数据。

# 布尔索引
array4 = np.array([1, 2, 3, 4, 5])
condition = array4 > 3
filtered_array = array4[condition]
print("布尔索引结果:", filtered_array)  # 输出 [4, 5]

注释:

  • 布尔索引通过条件表达式生成布尔数组,然后用布尔数组来筛选数据。

八、数组的合并与拆分

Numpy 提供了多种方法来合并和拆分数组。

# 数组合并
array_a = np.array([1, 2, 3])
array_b = np.array([4, 5, 6])
concatenated_array = np.concatenate((array_a, array_b))
print("合并后的数组:", concatenated_array)  # 输出 [1, 2, 3, 4, 5, 6]# 数组拆分
split_arrays = np.split(concatenated_array, 2)
print("拆分后的数组:", split_arrays)  # 输出 [array([1, 2, 3]), array([4, 5, 6])]

注释:

  • np.concatenate() 用于合并数组。

  • np.split() 用于将数组拆分成多个子数组。

九、总结

Numpy 是 Python 中处理数值数据的核心库,它提供了高效、灵活的数组操作功能。通过本文的介绍,你应该已经掌握了 Numpy 数组的创建、索引、切片、形状变换、运算、统计方法、布尔索引以及合并与拆分等基本操作。这些功能将为你的数据分析和科学计算工作提供强大的支持。

如果你对 Numpy 的其他高级功能感兴趣,如随机数生成、线性代数运算等,可以继续深入学习。希望本文对你有所帮助!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • STUSB4500 PPS(PD3.0)快充SINK模块——应用 解析
  • React和原生事件的区别
  • C++ 模版复习
  • LoRA:高效微调预训练模型的利器
  • 企业数字化转型的7个难点
  • t014-项目申报管理系统 【springBoot 含源码】
  • 7.atlas安装
  • 气镇阀是什么?
  • 大模型长对话中上下文无法承载全部历史,如何压缩或提取重点
  • RAG应用:交叉编码器(cross-encoder)和重排序(rerank)
  • 信息安全管理与评估2025山东卷
  • Root权限:解锁Android的终极力量
  • LLM + RAG + Vanna 综合实战
  • 移动端图片浏览插件
  • 机器视觉视觉中的棋盘格到底是什么?为什么是棋盘格?
  • python训练 60天挑战-day40
  • 在Mathematica中使用WhenEvent求解微分方程
  • 【数据库】并发控制
  • shell脚本打包成可以在麒麟桌面操作系统上使用的deb包
  • leetcode:479. 最大回文数乘积(python3解法,数学相关算法题)
  • 天猫代运营公司/太原seo快速排名怎么样
  • 衢州网络公司做网站/山东seo百度推广
  • 网页版梦幻西游探案任务攻略/站优化
  • 全能网站建设pdf/沈阳百度seo
  • 网站建设的三大原则/百度搜索如何去广告
  • 网站租房做公寓/优化网站平台