🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

📊 NumPy ndarray 核心属性总览

🔑 六大核心属性

💻 代码示例

📐 不同维度数组示例

一维数组

二维数组

三维数组

🔧 其他实用属性

示例:转置与步长

⚠️ 注意事项

📋 属性速查表


img

根据搜索结果,我为您整理了 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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐