当前位置: 首页> 健康> 科研 > Numpy基础操作详解

Numpy基础操作详解

时间:2025/9/12 5:46:49来源:https://blog.csdn.net/m0_71212744/article/details/140045543 浏览次数:0次

Numpy基础操作详解

NumPy(Numerical Python)是Python语言的一个扩展库,支持大量的维度数组与矩阵运算,并提供了大量的数学函数来处理这些数组。NumPy是Python数据分析、机器学习等领域的基础库之一。本文将介绍NumPy的一些基础操作,帮助读者快速上手。

安装NumPy

如果你还没有安装NumPy,可以通过pip来安装:

pip install numpy

导入NumPy

在Python脚本中,我们通常使用以下方式来导入NumPy库:

import numpy as np

创建数组

使用numpy.array()

你可以使用numpy.array()函数来创建NumPy数组。

import numpy as np  # 从Python列表创建数组  
arr1 = np.array([1, 2, 3, 4])  
print(arr1)  # 输出: [1 2 3 4]  # 创建二维数组(矩阵)  
arr2 = np.array([[1, 2], [3, 4], [5, 6]])  
print(arr2)  
# 输出:  
# [[1 2]  
#  [3 4]  
#  [5 6]]

使用NumPy内置函数

NumPy提供了许多内置函数来创建特定类型的数组。

  • numpy.zeros(): 创建全零数组
  • numpy.ones(): 创建全一数组
  • numpy.eye(): 创建单位矩阵(对角线为1,其余为0)
  • numpy.arange(): 类似于Python的range(),但返回数组
  • numpy.linspace(): 在指定范围内创建等间隔的数组
# 示例  
zeros_arr = np.zeros((2, 3))  # 创建一个2x3的全零数组  
ones_arr = np.ones((3, 2))   # 创建一个3x2的全一数组  
eye_arr = np.eye(3)          # 创建一个3x3的单位矩阵  
arange_arr = np.arange(0, 10, 2)  # 创建一个从0到8(不包括10),步长为2的数组  
linspace_arr = np.linspace(0, 1, 5)  # 创建一个从0到1,包含5个等间隔元素的数组

数组属性

NumPy数组有许多有用的属性,如shapedtypesizendim

  • shape: 数组的维度
  • dtype: 数组元素的数据类型
  • size: 数组元素的数量
  • ndim: 数组的维度数(轴的数量)
print(arr2.shape)  # 输出: (3, 2)  
print(arr2.dtype)  # 输出: dtype('int64') 或其他整数类型  
print(arr2.size)   # 输出: 6  
print(arr2.ndim)   # 输出: 2

数组操作

索引和切片

NumPy数组支持Python中的索引和切片操作。

print(arr2[0, 1])  # 输出: 2,获取第一行第二列的元素  
print(arr2[1:3, :])  # 输出:  
# [[3 4]  
#  [5 6]],获取第二行到第三行(不包括第三行)的所有列

数组运算

NumPy支持数组间的元素级运算,如加法、减法、乘法、除法等。

arr3 = np.array([[1, 2], [3, 4]])  
print(arr2 + arr3)  # 对应元素相加  
# 输出:  
# [[ 2  4]  
#  [ 6  8]  
#  [ 6  8]]

广播

NumPy的广播机制允许不同形状的数组进行算术运算。

arr4 = np.array([10, 20])  
print(arr2 + arr4)  # arr4 会广播到与 arr2 相同的形状  
# 输出:  
# [[11 12]  
#  [23 24]  
#  [35 36]]

聚合函数

NumPy提供了许多聚合函数,如np.sum()np.mean()np.max()np.min()等,用于计算数组中元素的和、平均值、最大值、最小值等。

关键字:Numpy基础操作详解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: