辨析numpy中flatten,ravel以及A1的区别-----展平

本文详细解析了Numpy中flatten,ravel及A1函数在矩阵展平操作上的区别。对于matrix与array类型,这些函数展现出不同的行为特性,如flatten与ravel在保持类型的同时进行展平,而A1则直接生成一维数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#辨析numpy中flatten,ravel以及A1的区别-----展平
import numpy as np
x = np.matrix([[1,2],[3,4]])
x
matrix([[1, 2],
        [3, 4]])
y = x.A #先将x转化为array类型
y
array([[1, 2],
       [3, 4]])
#对matrix类型进行展平为一维数组
x.flatten()  
matrix([[1, 2, 3, 4]])
x.ravel()
matrix([[1, 2, 3, 4]])
x.A1
array([1, 2, 3, 4])
x[:,1].A1
array([2, 4])

通过以上三个函数的展平发现,flatten以及ravel有展平的作用,但是对与matrix类型,我们发现,flatten和ravel将矩阵展平之后,依保持了矩阵类型以及原来的维数,但是A1直接将其展平为了一维数组

y.flatten()
array([1, 2, 3, 4])
y.ravel()
array([1, 2, 3, 4])
y.A1
---------------------------------------------------------------------------

AttributeError   Traceback (most recent call last)

<ipython-input-9-8765518c9c68> in <module>
----> 1 y.A1
AttributeError: 'numpy.ndarray' object has no attribute 'A1'

通过以上三个函数的展平发现,对于array类型,flatten和ravel可以直接将array多维数组展平为一维数组,但是array并没有A1命令

总结:flatten(),以及ravel()对于array直接展平为一维数组,对于matrix展平的同 时保留原有维数和类型
A1命令只针对matrix类型,直接展平为一维数组,而不是一维矩阵(也没有一维矩阵233)
ps:多说一句,即使是对array类型的展平,flatten()和ravel()的效果是完全相同的,但机理不同,ravel的展平是一种引用,flatten则是深拷贝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值