flatten()函数用法

flatten是numpy.ndarray.flatten的一个函数,即返回一个折叠成一维的数组。但是该函数只能适用于numpy对象,即array或者mat,普通的list列表是不行的。

其官方文档是这样描述的

Parameters:

ndarray.flatten(order='C') Return a copy of the array collapsed into one dimension. 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'.

a是个矩阵或者数组,a.flatten()就是把a降到一维,默认是按横的方向降

那么a.flatten().A又是什么呢"htmlcode">

> from numpy import *
> a=array([[1,2],[3,4],[5,6]])
> a
array([[1, 2],
  [3, 4],
  [5, 6]])
> a.flatten()
array([1, 2, 3, 4, 5, 6])
> a.flatten('F')
array([1, 3, 5, 2, 4, 6]) # 按列排序
> a.flatten('A')
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]])
> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
> a=mat([[1,2,3],[4,5,6]])
> a
matrix([[1, 2, 3],
  [4, 5, 6]])
> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
> y=a.flatten().A 
> shape(y)
(1L, 6L)
> shape(y[0]) 
(6L,)
> a.flatten().A[0] 
array([1, 2, 3, 4, 5, 6])
> 

从中可以看出matrix.A的用法和矩阵发生的变化。

3、但是该方法不能用于list对象,想要list达到同样的效果可以使用列表表达式:

> a=array([[1,2],[3,4],[5,6]])
> [y for x in a for y in x]
[1, 2, 3, 4, 5, 6]
> 

完美实现!!

补充知识:python中矩阵.A是什么意思?

1. 概述

在numpy中矩阵我们十分常用,但有时候我们会将矩阵转化为数组,方法很简单,直接在矩阵名后加 .A 即可。

2. 演示

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2019/2/21 19:13
# @Author : Arrow and Bullet
# @FileName: .A.py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/qq_41800366
from numpy import *

matTest = mat([1, 2])
print(matTest, type(matTest)) # 结果:[[1 2]] <class 'numpy.matrixlib.defmatrix.matrix'>

matTestToArr = matTest.A
print(matTestToArr, type(matTestToArr)) # 结果:[[1 2]] <class 'numpy.ndarray'>

打印结果如下:

# [[1 2]] <class 'numpy.matrixlib.defmatrix.matrix'>

# [[1 2]] <class 'numpy.ndarray'>

希望能够帮助到大家,有什么问题可以 直接评论即可,喜欢有用的话可以点个赞让更多的人看到,如果不够详细的话也可以说,我会及时回复的。

以上这篇Python中flatten( ),matrix.A用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。