mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13mobile wallpaper 14mobile wallpaper 15mobile wallpaper 16mobile wallpaper 17mobile wallpaper 18mobile wallpaper 19mobile wallpaper 20mobile wallpaper 21mobile wallpaper 22mobile wallpaper 23
1205 字
3 分钟
笔记|数据分析学习笔记03|ndarray的特性与属性

本系列所有文章都放在数据科学标签,总目录如下:

合集|数据分析学习笔记|系列总目录

上一篇:笔记|数据分析学习笔记02|Jupyter在VSCode中的使用

3.1 ndarray 的核心特性#

NumPy 数组(ndarray)是 NumPy 库的核心数据结构,它是一种高效的多维同构数组。ndarray 具有以下三个核心特性:

  • 多维性:支持 0 维(标量)、1 维(向量)、2 维(矩阵)及更高维数组
  • 同质性:所有元素类型必须一致(通过 dtype 指定)
  • 高效性:基于连续内存块存储,支持向量化运算

3.1.1 多维性#

ndarray 可以表示从 0 维到高维的多种数据结构。通过 ndim 属性可以查看数组的维度数量(number of dimensions)。

0 维数组(标量):

import numpy as np
arr = np.array(5) # 创建0维ndarray数组
print(arr)
print('arr的维度是:', arr.ndim)

输出:

5
arr的维度是: 0

1 维数组(向量):

arr = np.array([1, 2, 3]) # 创建1维ndarray数组
print(arr)
print('arr的维度是:', arr.ndim)

输出:

[1 2 3]
arr的维度是: 1

2 维数组(矩阵):

arr = np.array([[1, 2, 3], [4, 5, 6]]) # 创建2维ndarray数组
print(arr)
print('arr的维度是:', arr.ndim)

输出:

[[1 2 3]
[4 5 6]]
arr的维度是: 2

3.1.2 同质性#

ndarray 要求所有元素类型必须一致。当传入不同类型的元素时,NumPy 会自动进行类型转换,将所有元素统一为同一种类型。

整型与字符串混合:

arr = np.array([1, 'hello']) # 不同类型的元素会被强制转换为同一类型
print(arr)

输出:

['1' 'hello']

整型 1 被自动转换为字符串 '1',数组整体变为字符串类型。

整型与浮点型混合:

arr = np.array([1, 2.5]) # 不同类型的元素会被强制转换为同一类型
print(arr)

输出:

[1. 2.5]

整型 1 被自动转换为浮点型 1.0,数组整体变为浮点类型。


3.2 ndarray 的常用属性#

ndarray 提供了丰富的属性来描述数组的特征。以下是最常用的属性及其说明:

属性名称通俗解释使用示例
shape数组的形状:行数和列数(或更高维度的尺寸)arr.shape
ndim维度数量:数组是几维的(1维、2维、3维等)arr.ndim
size总元素个数:数组中所有元素的总数arr.size
dtype元素类型:数组中元素的类型(整数、浮点数等)arr.dtype
T转置:行变列,列变行arr.T
itemsize单个元素占用的内存字节数arr.itemsize
nbytes数组总内存占用量:size * itemsizearr.nbytes
flags内存存储方式:是否连续存储(高级优化)arr.flags

注意: 属性和方法的区分方式是看是否带括号——不带括号的是属性(如 arr.ndim),带括号的是方法。

下面通过不同维度的数组来演示这些属性的使用。

0 维数组的属性:

arr = np.array(1)
print(arr)
print('数组的形状:', arr.shape)
print('数组的维度:', arr.ndim)
print('元素的个数:', arr.size)
print('数组的类型:', arr.dtype)
print('元素的转置:', arr.T)

输出:

1
数组的形状: ()
数组的维度: 0
元素的个数: 1
数组的类型: int64
元素的转置: 1

1 维数组的属性:

arr = np.array([1, 2.5, 3])
print(arr)
print('数组的形状:', arr.shape)
print('数组的维度:', arr.ndim)
print('元素的个数:', arr.size)
print('数组的类型:', arr.dtype)
print('元素的转置:', arr.T)

输出:

[1. 2.5 3. ]
数组的形状: (3,)
数组的维度: 1
元素的个数: 3
数组的类型: float64
元素的转置: [1. 2.5 3. ]

注意 1 维数组的形状为 (3,),表示只有一个维度,长度为 3。1 维数组的转置等于其自身。

2 维数组的属性:

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
print('数组的形状:', arr.shape)
print('数组的维度:', arr.ndim)
print('元素的个数:', arr.size)
print('数组的类型:', arr.dtype)
print('元素的转置:', arr.T)

输出:

[[1 2 3]
[4 5 6]]
数组的形状: (2, 3)
数组的维度: 2
元素的个数: 6
数组的类型: int64
元素的转置: [[1 4]
[2 5]
[3 6]]

2 维数组的转置操作会将行变为列、列变为行。原数组形状为 (2, 3),转置后形状变为 (3, 2)


3.3 矩阵的基本概念#

在深入学习 ndarray 之前,有必要了解一些矩阵的基本概念。矩阵是线性代数中的基础数据结构,也是 NumPy 中 2 维数组的数学原型。

3.3.1 数组与矩阵的对比#

在 NumPy 中,不同维度的数组对应不同的数学对象:

名称维度示例备注
标量0 维5, 3.14单个数字,无行列
向量1 维[1, 2, 3]只有行或列(一维数组)
矩阵2 维[[1, 2], [3, 4]]严格的行列结构(二维表)
张量≥3 维[[[1, 2], [3, 4]]]高阶数组(如 RGB 图像)

3.3.2 矩阵的定义#

矩阵是一个由行(row)和列(column)排列成的矩形数组。例如:

A=[123456]A=\begin{bmatrix} 1&2&3\\ 4&5&6\end{bmatrix}

  • 形状(shape):这个矩阵有 2 行 3 列,记作 2×3 矩阵
  • 元素(entry):矩阵中的每个数字称为元素

3.3.3 特殊矩阵#

在线性代数和 NumPy 中,有几类常见的特殊矩阵:

矩阵类型定义例子
零矩阵所有元素为 0[0000]\begin{bmatrix} 0&0\\ 0&0\end{bmatrix}
单位矩阵对角线上为 1,其余为 0[1001]\begin{bmatrix} 1&0\\ 0&1\end{bmatrix}
对角矩阵只有对角线有非零值[2003]\begin{bmatrix} 2&0\\ 0&3\end{bmatrix}
对称矩阵A=ATA=A^{T}[1223]\begin{bmatrix} 1&2\\ 2&3\end{bmatrix}

这些特殊矩阵在 NumPy 中都有对应的创建方法,我们将在下一节中详细学习。


3.4 本节小结#

本节完成了以下内容:

  • 介绍了 ndarray 的核心特性:多维性、同质性和高效性
  • 讲解了 ndarray 的常用属性:shapendimsizedtypeTitemsizenbytesflags
  • 了解了矩阵的基本概念,包括标量、向量、矩阵、张量的区别,以及特殊矩阵的类型

下一节我们将学习 ndarray 的各种创建方法。

下一篇:笔记|数据分析学习笔记04|ndarray的创建


分享

如果这篇文章对你有帮助,欢迎分享给更多人!

笔记|数据分析学习笔记03|ndarray的特性与属性
https://luq-blog.xyz/posts/2026-07-01-data-notes-03-ndarray-features/
作者
Luquiescene
发布于
2026-07-01
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录