numpy下的flatten()函数用法
flatten是numpy.ndarray.flatten的一个函数,其官方文档是这样描述的:
- ndarray.flatten(order='C')
-
Return a copy of the array collapsed into one dimension.
Parameters:
order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
‘C’ means to flatten in row-major (C-style) order. ‘F’ means to flatten in column-major (Fortran- style) order. ‘A’ means to flatten in column-major order if a is Fortran contiguous in memory, row-major order otherwise. ‘K’ means to flatten a in the order the elements occur in memory. The default is ‘C’.
Returns: y : ndarray
A copy of the input array, flattened to one dimension.
即返回一个折叠成一维的数组。但是该函数只能适用于numpy对象,即array或者mat,普通的list列表是不行的。
例子:
1、用于array对象
12345678from
numpy
import
*
>>>a
=
array([[
1
,
2
],[
3
,
4
],[
5
,
6
]])
###此时a是一个array对象
>>>a
array([[
1
,
2
],[
3
,
4
],[
5
,
6
]])
>>>a.flatten()
array([
1
,
2
,
3
,
4
,
5
,
6
])
2、用于mat对象
1234>>> a
=
mat([[
1
,
2
,
3
],[
4
,
5
,
6
]])
>>> a
matrix([[
1
,
2
,
3
],
[
4
,
5
,
6
]])<br>>>> a.flatten()<br>matrix([[
1
,
2
,
3
,
4
,
5
,
6
]])<br>
3、但是该方法不能用于list对象
1234567>>> a
=
[[
1
,
2
,
3
],[
4
,
5
,
6
],[
'a'
,
'b'
]]
>>> a
[[
1
,
2
,
3
], [
4
,
5
,
6
], [
'a'
,
'b'
]]
>>> a.flatten()
###报错
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
AttributeError:
'list'
object
has no attribute
'flatten'
想要list达到同样的效果可以使用列表表达式:
12>>> [y
for
x
in
a
for
y
in
x]
[
1
,
2
,
3
,
4
,
5
,
6
,
'a'
,
'b'
]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步