numpy ndarray 多维数组的内存管理
1. ndarray.flags:内存布局(layout)
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flags.html
>> x = np.random.rand(2, 4)
>> x.flagsC_CONTIGUOUS : TrueF_CONTIGUOUS : FalseOWNDATA : TrueWRITEABLE : TrueALIGNED : TrueWRITEBACKIFCOPY : FalseUPDATEIFCOPY : False
C_CONTIGUOUS:C-style
F_CONTIGUOUS:Fortran-style
OWNDATA:拥有自己的数据还是从别的对象借来
>> y = x[1, :] >> y.flags['OWNDATA'] False
2. ndarray.__array_interface__
:内存地址
>> x = np.random.rand(2, 4)
>> x.dtype
dtype('float64')>> x.__array_interface__['data']
(140245892607552, False)
>> x[0].__array_interface__['data]
(140245892607552, False)
>> x[0, :].__array_interface__['data']
(140245892607552, False)>> x[1].__array_interface__['data']
(140245892607584, False)# 140245892607584 = 140245892607552 + 4*8
>> x[1, :].__array_interface__['data']
(140245892607584, False)
以上无论是 x
是 x[0]
还是 x[0, :]
,都是 numpy.ndarray
类型,对于 x[0, 0]
则是普通的 numpy.float64,其地址在另外的地址空间中:
>> x[0, 0].__array_interface__['data']
(140245864608576, False)
numpy ndarray 多维数组的内存管理相关推荐
- nditer —— numpy.ndarray 多维数组的迭代
1. Single array iteration >>> a = np.arange(6).reshape(2,3) >>> for x in np.nditer ...
- Numpy之N维数组-ndarray
Numpy之N维数组-ndarray 1 ndarray的属性 数组属性反映了数组本身固有的信息. 属性名字 属性解释 ndarray.shape 数组维度的元组 [假如是8行5列的数组,将会返 ...
- NumPy 创建多维数组
NumPy 创建多维数组 arange 函数创建的数组作为列表元素,把这个列表作为参数传给 array 函数,从而创建了一个 2 × 2 的数组,而且没有出现任何报错信息. Example 1 #!/ ...
- 图解数据分析(10) | Numpy - 与2维数组操作(数据科学家入门·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/33 本文地址:https://www.showmeai.tech/article-d ...
- 二维数组动态分配内存
二维数组动态分配内存 C 二维数组动态分配和释放 (1)已知第二维 Code-1 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(char ...
- C++/C--动态二维数组的内存分配与释放【转载】
1 C语言_二维数组动态数组分配和释放 1.1 数组指针的内存分配和释放 //方法一 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(cha ...
- Numpy 笔记: 多维数组的切片(slicing)和索引(indexing)【转】
目录 切片(slicing)操作 索引(indexing) 操作 最简单的情况 获取多个元素 切片和索引的同异 切片(slicing)操作 Numpy 中多维数组的切片操作与 Python 中 lis ...
- C语言中多维数组的内存分配和释放(malloc与free)(转)
C语言中多维数组的内存分配和释放(malloc与free)(转) 写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误.下面贴上一些示例代码,以供参考. 如果要给二维数组( ...
- numpy获取二维数组某一行、某一列
numpy获取二维数组某一行.某一列 1.需求 有一个二维数组: a = [[1, 2, 3, 4, 5, 6],[7, 8, 9, 10, 11, 12],[13.2, 14.8, 15.9, 16 ...
最新文章
- 优化思路千万种,基于下界函数的最优化效率如何?
- 解决 MSChart控件 X轴坐标显示不全的问题
- 启动nuxt项目fsevents报错
- python 事务操作_Python实现完整的事务操作示例
- 执行上下文(Exection Contexts)
- 小酌重构系列[19]——分解大括号
- Java集合篇:HashSet
- Vue 凭什么成为 2020 年的一匹黑马
- C语言 while 循环 - C语言零基础入门教程
- hdu 2570 (贪心)
- RFID图书馆管理系统
- pcan的dbc和project等的配置
- C语言中结构体所占内存空间
- 使用Apple第三方登录Java版
- Win10中Jenkins的安装和基本使用流程
- 在C ++中将二进制转换为十进制
- 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法
- 西部世界科普时间:FIL将从4月15日开始减产? 谣言!
- Apple Color Emoji打开
- 【Proteus仿真】基于74LS148+74LS279+74LS48的四路抢答器