NumPy如何扁平化多维数组
发布时间:2022-10-13 11:07:09 所属栏目:PHP教程 来源:
导读: 在NumPy中有两种主流的扁平化数组的的方式:np.flatten()和np.ravel()。这两种方式的主要差异是,使用ravel()函数创建的新数组实际上它的父数组的一个引用(即数组视图),也就是说,改变这个数组的元素值,会影
|
在NumPy中有两种主流的扁平化数组的的方式:np.flatten()和np.ravel()。这两种方式的主要差异是,使用ravel()函数创建的新数组实际上它的父数组的一个引用(即数组视图),也就是说,改变这个数组的元素值,会影响其父数组的元素值,这是因为ravel函数为了提高访问效率PHP多维数组,不会创建一个原始数组的副本。 >>> import numpy as np >>> x = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) >>> x.flatten() #把一个三行四列的二维数组扁平化为一个一维数组。 array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) >>> a1 = x.flatten() #flatten方法使用深度复制的方式来扁平化数组 >>> a1[0] = 99 #改变扁平化后的数组的值 >>> print(x) # Original array 原始数组中的对应位置的元素值没有改变。 [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] >>> print(a1) # New array [99 2 3 4 5 6 7 8 9 10 11 12] >>> a2 = x.ravel() #ravel方法返回原始数组的视图(浅层复制) >>> a2[0] = 98 #改变扁平化后数组中索引为0的数组元素的值 >>> print(x) # Original array 原始数组中对应位置的数组元素值被修改了。 [[98 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] >>> print(a2) # New array [98 2 3 4 5 6 7 8 9 10 11 12] (编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330577号