numpy 学习汇总17 - 副本和视图,内部缓冲区( 基础学习 tcy)
发布日期:2021-06-29 14:47:31 浏览次数:3 分类:技术文章

本文共 1528 字,大约阅读时间需要 5 分钟。

副本和视图,内部缓冲区                                       2018/6/18  2018/11/30     说明:    ndarrays共享相同数据ndarray可以是另一个ndarray 的“视图”,数据由base处理。    ndarrays也可以是Python拥有的内存strings或实现buffer或数组接口的对象的视图。    切片可以产生数组的视图        ===================================================================1.不复制  简单的赋值# Python将可变对象作为引用传递,所以函数调用不会复制。a = np.arange(12)b = ab is ab.shape = 3,4     # changes the shape of aa.shape              #(3, 4)===================================================================    2.查看视图np.view(dtype = None,type = None)具有相同数据数组的新视图    # dtype用不同的数据类型构造数组内存的视图。    # 这可能导致重新解释内存的字节对视图进行更改将更改基础数组    # 修改视图会改变原数据    # 实例1:x = np.array([(1, 2),(3,4)], dtype=[('a', np.int8), ('b', np.int8)])#array([(1, 2), (3, 4)], dtype=[('a', 'i1'), ('b', 'i1')])y = x.view(dtype=np.int16, type=np.matrix)#np.ndarray         #matrix([[ 513, 1027]], dtype=int16)x.base               #Noney.base               #array([(1, 2), (3, 4)], dtype=[('a', 'i1'), ('b', 'i1')])y.base is x        #True    x.flags.owndata#Truey.flags.owndata#False    y = x.view(dtype=np.int8).reshape(2,2)# array([[1, 2], [3, 4]], dtype=int8)z = x.view(np.recarray)                         # rec.array([(1, 2), (3, 4)],dtype=[('a', 'i1'), ('b', 'i1')])    # 实例2:x = np.array([[1,2,3],[4,5,6]], dtype=np.int16)y = x[:, 0:2]                        #修改会改变原数组z = y.copy()z.view(dtype=[('width', np.int16), ('length', np.int16)])    # array([[(1, 2)], [(4, 5)]], dtype=[('width', '
(4, 2) ===================================================================

转载地址:https://chunyou.blog.csdn.net/article/details/84332925 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:numpy 学习汇总18 - 数学运算 (集合,复数)( 基础学习 tcy)
下一篇:numpy 学习汇总16 - Scalar标量的属性方法( 基础学习 tcy)

发表评论

最新留言

不错!
[***.144.177.141]2024年04月12日 14时07分23秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章