numpy下的flatten()函数用法详解
作者:波比12 发布时间:2021-08-19 04:27:54
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])
来源:https://www.cnblogs.com/itdyb/p/5796834.html


猜你喜欢
- '''数据集:Mnist训练集数量:60000测试集数量:10000------------------------
- 在公司的工作经常要为客户作产品展示的页面,由于客户上传的图片格式大小不一,缩放后会导致变形,于是在星期天抽了点时间,写了一段JS代码,支持图
- 上次我们已经搞定了逻辑层的单元测试,这次我们来康康接口层的单元测试。接口层主要负责的就是请求的处理,最常见的就是 HTTP 请求的处理。但针
- 建立随机生成的HTML代码是一件相当容易实现的ASP特性。你可能创建过“每日一帖”、滚动广告等等,只需要稍加点缀就会令你的网站日久弥新。对存
- 简介:倒计时秒杀组件在电商网站中层出不穷 不过思路万变不离其踪,我自己根据其他资料设计了一个vue版的核心思路:1、时间不能是本
- 1.创建mysql存储过程,这是个复杂查询加上了判断,比较复杂CREATE PROCEDURE searchAllList (IN trad
- use mysql; u
- FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, Op
- mysql之alter表的SQL语句集合,包括增加、修改、删除字段,重命名表,添加、删除主键等。1:删除列ALTER TABLE 【表名字】
- 使用字符串时,常见的操作之一是使用给定的分隔符将字符串拆分为子字符串数组。在本文中,我们将讨论如何在Python中拆分字符串。.split(
- 如何用javascript来判定选择单选的radio哪个被选择,多选的checkbox有那几个被选中? <!DOCTYPE
- 前言 1. 概述共享坐标轴就是几幅子图之间共享x轴或y轴,这一部分主要了解如何在利用matplotlib制图时共享坐标轴。pyplot.s
- 正解使用useRouter:// router的 path: "/user/:uid"<template>
- 1. 文件注释File -> settings -> Editor -> File and Code Templates
- RFC文档有很多,有时候在没有联网的情况下也想翻阅,只能下载一份留存本地了。看了看地址列表,大概是这个范围:http://www.netwo
- 方法调用行为方法调用比其他类型的查找略为复杂一点。 以下是一些注意事项: 在方法查找过程中,如果某方法抛
- 我们讲了requests的用法以及利用requests简单爬取、保存网页的方法,这节课我们主要讲urllib和requests的区别。1、获
- 在《JavaScript语言精粹》的第72页有这样一段:用正则表达式字面量创建的RegExp对象来共享同一个单实例:function mak
- 下面文章描述可能比excel高级一点,距离backtrader这些框架又差一点。做最基础的测试可以,如果后期加入加仓功能,或者是止盈止损等功
- 一.问题:太久没用mysql ,忘记了原先的root密码二:解决1.关闭mysql服务2.使用cd指令切换到mysql的bin目录使用mys