HoRain云--NumPy数组核心属性全解析

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

根据搜索结果,我为您整理了 NumPy 数组(ndarray)的完整属性指南。
📊 NumPy ndarray 核心属性总览
NumPy 的 ndarray(N-dimensional array)是科学计算的核心数据结构,提供了多个只读属性用于快速获取数组的结构和内存信息。
🔑 六大核心属性
| 属性 | 说明 | 返回值类型 | 示例 |
|---|---|---|---|
ndim |
数组的维度数(轴的数量) | int |
一维=1,二维=2,三维=3 |
shape |
数组的形状(各维度大小) | tuple |
(3, 4) 表示 3 行 4 列 |
size |
数组中元素的总数量 | int |
shape 各维度乘积 |
dtype |
数组元素的数据类型 | dtype 对象 |
int64, float32 等 |
itemsize |
单个元素占用的字节数 | int |
int64=8 字节,float32=4 字节 |
nbytes |
数组总内存占用(字节) | int |
size × itemsize |
💻 代码示例
import numpy as np
# 创建二维数组
arr = np.array([[1, 2, 3],
[4, 5, 6]], dtype=np.int64)
print(f"ndim: {arr.ndim}") # 2
print(f"shape: {arr.shape}") # (2, 3)
print(f"size: {arr.size}") # 6
print(f"dtype: {arr.dtype}") # int64
print(f"itemsize: {arr.itemsize}") # 8 (字节)
print(f"nbytes: {arr.nbytes}") # 48 (6 × 8)
📐 不同维度数组示例
一维数组
a1 = np.array([1, 2, 3, 4, 5])
print(a1.ndim) # 1
print(a1.shape) # (5,)
print(a1.size) # 5
二维数组
a2 = np.array([[1, 2, 3],
[4, 5, 6]])
print(a2.ndim) # 2
print(a2.shape) # (2, 3)
print(a2.size) # 6
三维数组
a3 = np.array([[[1, 2], [3, 4]],
[[5, 6], [7, 8]]])
print(a3.ndim) # 3
print(a3.shape) # (2, 2, 2)
print(a3.size) # 8
🔧 其他实用属性
| 属性 | 说明 | 示例 |
|---|---|---|
T |
数组转置(不复制数据) | arr.T |
real |
复数数组的实部 | arr.real |
imag |
复数数组的虚部 | arr.imag |
data |
指向数组数据的缓冲区指针 | arr.data |
flags |
内存布局标志信息 | arr.flags |
strides |
各维度步长(字节) | arr.strides |
base |
拥有此数组数据的基对象 | arr.base |
示例:转置与步长
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(arr.T) # 转置
# [[1 4]
# [2 5]
# [3 6]]
print(arr.strides) # 步长(字节)
# (24, 8) 表示跳过24字节到下一行,8字节到下一列
⚠️ 注意事项
| 注意点 | 说明 |
|---|---|
| 只读属性 | 大部分属性是只读的,不能直接赋值修改 |
| shape 可修改 | arr.shape = (新形状) 可以改变形状(元素总数需匹配) |
| dtype 不可直接改 | 需用 arr.astype(新类型) 转换数据类型 |
| 内存共享 | T 转置不复制数据,修改会影响原数组 |
| nbytes 计算 | nbytes = size × itemsize,但不包括额外开销 |
📋 属性速查表
┌─────────────┬──────────────────┬─────────────┐
│ 属性名 │ 含义 │ 典型值 │
├─────────────┼──────────────────┼─────────────┤
│ ndim │ 维度数量 │ 1, 2, 3... │
│ shape │ 各维度大小 │ (3, 4, 5) │
│ size │ 元素总数 │ 60 │
│ dtype │ 数据类型 │ float64 │
│ itemsize │ 单元素字节数 │ 8 │
│ nbytes │ 总内存字节数 │ 480 │
│ T │ 转置视图 │ ndarray │
│ strides │ 内存步长 │ (32, 8, 8) │
└─────────────┴──────────────────┴─────────────┘
掌握这些属性可以帮助您更好地理解数组结构、优化内存使用,以及进行高效的科学计算!如有其他问题,欢迎继续咨询。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)