Python数据分析之Numpy库的使用详解

小满
小满
发布时间:2026-10-14| 6人浏览过
原创

本文详解Python中Numpy库的基础应用,涵盖ndarray多维数组的创建、核心属性(ndim、shape、dtype等)解析,以及array、arange、zeros等常用创建函数的用法。同时介绍数组的索引与切片技巧,帮助读者快速掌握Numpy在数据分析中的关键操作。

前言

本文并非以Python为主要语言视角,仅简要介绍Numpy库的基本使用方法。

提示:以下是本篇文章正文内容

🧡Numpy库介绍

numpy库处理的最基础数据类型是由同种元素构成的多维数组(ndarray),简称“数组”。数组中所有元素的类型必须相同,且元素可通过整数索引访问,序号从0开始。ndarray类型的维度(dimensions)称为轴(axes),轴的个数称为秩(rank)。一维数组的秩为1,二维数组的秩为2,二维数组相当于由两个一维数组构成。

numpy库概述: 由于numpy库中函数较多且命名容易与常用命名混淆,建议采用如下方式引用numpy库:


import numpy as np

其中,as保留字与import一起使用能够改变后续代码中库的命名空间,有助于提高代码可读性。简单说,在程序的后续部分中,np代替numpy。

💙ndarray类常用属性

创建一个简单的数组后,可以查看ndarray类型有一些基本属性

1.ndarray.ndim 数组轴的个数,在python的世界中,轴的个数被称作秩

2.ndarray.shape 数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性

3.ndarray.size 数组元素的总个数,等于shape属性中元组元素的乘积。

4.ndarray.dtype 一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。

5.ndarray.itemsize 数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8)。

6.ndarray.data 包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。


import numpy as np #引入numpy模块
a = np.ones((4,5))
print(a)
print('数据轴个数: ',a.ndim)
print('每个维度的数据个数: ',a.shape)
print('数据类型',a.dtype)

# 结果 [[1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.]] 数据轴个数: 2 每个维度的数据个数: (4, 5) 数据类型 float64

小结:

💚Numpy常用函数

🍓array函数

函数原型:


np.array([x,y,x],dtype=int)  # 从列表和元组中创建数组

功能:array函数将列表转矩阵


import numpy as np #引入numpy模块
array=np.array([[1,2,3], #列表转矩阵
[4,5,6]])
print(array)
print('number of dim',array.ndim) #输出矩阵数据轴数
print('size',array.size) #输出矩阵总元素个数

# 结果 [[1 2 3] [4 5 6]] number of dim 2 size 6

🥝arange()函数和linspace()函数

函数原型:


np.arange(x,y,i)   # 创建一个由x到y,以i为步长的数组
np.linspace(x,y,n)  # 创建一个由x到y,等分为n个元素的数组

import numpy as np #引入numpy模块
a=np.arange(1,12,2)# np.arange从1到12,间隔为2
print(a)
#从2到12,生成随机6个数,并控制为2行3列
b=np.linspace(2,12,6).reshape(2,3)
print(b)

# 结果: [ 1 3 5 7 9 11] [[ 2. 4. 6.] [ 8. 10. 12.]]

🍎zeros(),empty和ones()

功能:创建都是初始值相同元素(0,1)的数组 函数原型:


np.ones((m,n),dtype)  # 创建一个m行n列的全为1的数组
np.zeros((m,n),dtype)  # 创建一个m行n列的全为0的数组
np.empty((m,n),dtype)  # 创建一个m行n列的全为0的数组

import numpy as np #引入numpy模块
a=np.zeros((5,8)) #元素都是0
b=np.ones((5,6)) #元素都是1
print(a)
print(b)

# 结果: [[0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.]] [[1. 1. 1. 1. 1. 1.] [1. 1. 1. 1. 1. 1.] [1. 1. 1. 1. 1. 1.] [1. 1. 1. 1. 1. 1.] [1. 1. 1. 1. 1. 1.]]

🍒ndarray类的索引和切片方法

和列表的索引差不多的


import numpy as np #引入numpy模块
a = np.random.rand(5,3)#生成随机5行3列数组
print(a)
print('获取第2行',a[2]) #获取第2行
print('切片',a[1:3]) #切片, 1到3行,不包括3
print('切片',a[-5:-2:2]) #切片,从后向前,步长为2

# 结果 [[0.53469047 0.47559129 0.65865181] [0.89942399 0.66683114 0.55181635] [0.11989817 0.06055933 0.56880058] [0.95744499 0.94814163 0.2155053 ] [0.95179242 0.61544664 0.40876683]] 获取第2行 [0.11989817 0.06055933 0.56880058] 切片 [[0.89942399 0.66683114 0.55181635] [0.11989817 0.06055933 0.56880058]] 切片 [[0.53469047 0.47559129 0.65865181] [0.11989817 0.06055933 0.56880058]]

🍇numpy库运算函数

总结

提示:这里对文章进行总结:

numpy库还包括三角运算函数、傅里叶变换、随机和概率分布、基本数值统计、位运算、矩阵运算等非常丰富的功能,在使用时可以到官方网站查询

python基础查表

到此这篇关于Python数据分析之Numpy库的使用详解的文章就介绍到这了,更多相关Python数据分析内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。