numpy下的flatten()函数用法详解


Posted in Python onMay 27, 2019

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对象

from 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对象

>>> 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对象

>>> a=[[1,2,3],[4,5,6],['a','b']]
[[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达到同样的效果可以使用列表表达式:

>>> [y for x in a for y in x]
[1, 2, 3, 4, 5, 6, 'a', 'b']

4、用在矩阵

>>> a = [[1,3],[2,4],[3,5]]
>>> a = mat(a)
>>> y = a.flatten()
>>> y
matrix([[1, 3, 2, 4, 3, 5]])
>>> y = a.flatten().A
>>> y
array([[1, 3, 2, 4, 3, 5]])
>>> shape(y)
(1, 6)
>>> shape(y[0])
(6,)
>>> y = a.flatten().A[0]
>>> y
array([1, 3, 2, 4, 3, 5])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python打造出适合自己的定制化Eclipse IDE
Mar 02 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
pip安装tensorflow的坑的解决
Apr 19 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
python绘制云雨图raincloud plot
Aug 05 Python
详解numpy的argmax的具体使用
May 27 #Python
numpy.random模块用法总结
May 27 #Python
Django框架自定义session处理操作示例
May 27 #Python
numpy concatenate数组拼接方法示例介绍
May 27 #Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 #Python
python安装numpy和pandas的方法步骤
May 27 #Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 #Python
You might like
数据库中排序的对比及使用条件详解
2012/02/23 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
koa-router源码学习小结
2018/09/07 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
详解vue高级特性
2020/06/09 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
Python中运行并行任务技巧
2015/02/26 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
python反扒机制的5种解决方法
2021/02/06 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
面试后的感谢信范文
2014/02/01 职场文书
新员工考核评语
2014/12/31 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
原生JS实现分页
2022/04/19 Javascript