Numpy:np.vstack()&np.hstack() flat/flatten

一 .  np.vstack: 按垂直方向(行顺序)堆叠数组构成一个新的数组

In[3]:
import numpy as np

In[4]:
a = np.array([[1,2,3]])
a.shape
Out[4]:
(1, 3)

In [5]:
b = np.array([[4,5,6]])
b.shape
Out[5]:
(1, 3)

In [6]:
c = np.vstack((a,b)) # 将两个(1,3)形状的数组按垂直方向叠加
print(c)
c.shape # 输出形状为(2,3)
[[1 2 3]
 [4 5 6]]
Out[6]:
(2, 3)

In [7]:
a = np.array([[1],[2],[3]])
a.shape
Out[7]:
(3, 1)

In [9]:
b = np.array([[4],[5],[6]])
b.shape
Out[9]:
(3, 1)

In [10]:
c = np.vstack((a,b))  # 将两个(3,1)形状的数组按垂直方向叠加
print(c)
c.shape # 输出形状为(6,1)
[[1]
 [2]
 [3]
 [4]
 [5]
 [6]]
Out[10]:
(6, 1)

二 . np.hstack:按水平方向(列顺序)堆叠数组构成一个新的数组

In[11]:
a = np.array([[1,2,3]])
a.shape
Out[11]:
(1, 3)

In [12]:
b = np.array([[4,5,6]])
b.shape
Out[12]:
(1, 3)

In [16]:
c = np.hstack((a,b)) # 将两个(1,3)形状的数组按水平方向叠加
print(c)
c.shape  # 输出形状为(1,6)
[[1 2 3 4 5 6]]
Out[16]:
(1, 6)

In [17]:
a = np.array([[1],[2],[3]])
a.shape
Out[17]:
(3, 1)
In [18]:
b = np.array([[4],[5],[6]])
b.shape
Out[18]:
(3, 1)
In [19]:
c = np.hstack((a,b)) 将两个(3,1)形状的数组按水平方向叠加
print(c)
c.shape  # 输出形状为(3,2)
[[1 4]
 [2 5]
 [3 6]]
Out[19]:
(3, 2)

三 .  numpy.ndarray.flat/flatten

1. flat返回的是一个迭代器,可以用for访问数组每一个元素

import numpy as np
a = np.arange(4).reshape(2,2)
print(a)
for i in a.flat:
    print(i)
#迭代器可以用list进行输出
print(list(a.flat))
print(type(a.flat))#返回类型为 numpy.flatiter
#可以用索引对迭代器进行引号
a.flat[3]
#输出:[[0 1]
 [2 3]]
0
1
2
3
[0, 1, 2, 3]
<class ‘numpy.flatiter‘>
3

2. ndarray.flatten(order=’C’)

Return a copy of the array collapsed into one dimension.
将数组的副本转换为一维,并返回

可选参数,order:{‘C’,‘F’,‘A’,‘K’}

    • ‘C’:C-style,行序优先
    • ‘F’:Fortran-style,列序优先
    • ‘A’:if a is Fortran contiguous in memory ,flatten in column_major order
    • ‘K’:按照元素在内存出现的顺序进行排序
      默认为’C’
a = np.array([[4,5],[4,9]])
#默认按行转换
b= a.flatten()
print(b)
#换成列来划分
c = a.flatten(‘F‘)
print(c)
[4 5 4 9]
[4 4 5 9]

原文地址:https://www.cnblogs.com/Bella2017/p/10748654.html

时间: 2024-10-11 01:08:13

Numpy:np.vstack()&np.hstack() flat/flatten的相关文章

numpy 常用工具函数 —— np.bincount/np.average

numpy 常用工具函数 -- np.bincount/np.average numpy 常用api(一) numpy 常用api(二) 一个函数提供 random_state 的关键字参数(keyword parameter):是为了结果的可再现性(reoccurrence)或叫可重复性. 1. np.bincount():统计次数 接口为: numpy.bincount(x, weights=None, minlength=None) 1 尤其适用于计算数据集的标签列(y_train)的分布

计算理论初步:P vs NP 问题

1.问题概述 P = NP? 这个问题,作为理论计算机科学的核心问题,其声名早已经超越了这个领域.它是Clay研究所的七个百万美元大奖问题之一,在2006国际数学家大会上,它是某个1小时讲座的主题. 要说起P和NP是什么东西,得先从算法的多项式时间复杂度谈起,注意,这里面的两个P都是指Polynomial. 一个问题的规模指的是输入的总位数,比如一个n个数的排序问题,输入规模就是n.注意,在某些时候,输入规模是要值得注意的,比如判定一个数n是否是一个质数这个问题,它的输入规模并不是n,而是log

去除警告: FutureWarning: In future, it will be treated as `np.float64 == np.dtype(float).type`.

文章目录: 一.警告原因分析 二.解决方法 最近在使用tensorflow-gpu的时候总是报警告,就我这强迫症能够忍他吗,no!绝对不能忍!!! 我的环境: cudnn=7.0 cuda=9.0 tensorflow-gpu=1.8 或 1.9 或 1.10.0 或 1.11.0 在上面的这个环境配置下都会报这个警告,解决方式都是一样的 一.警告原因分析 从下面包的警告可以看出,是和h5py这个库包有关的 import tensorflow as tf /home/mosheng/minico

区分range() , np.arange() , np.linspace()

content: range() np.arange() np.linspace() 一.range(start, stop, step) 1.range() 为 python 自带函数 2.生成一个从start(包含)到stop(不包含),以step为步长的序列.返回一个 list 对象 range(stop) 返回 range object range(start, stop[, step]) 返回 range object 3.start默认为0,stop是必须的,step默认为1,可正可

Numpy:使用numpy.sort()、numpy.argsort()获取排序后的值

获取矩阵排序后的值 print("---------------------np.sort()可得升序后的值-------------------------") import numpy as np a = np.array([[4, 3, 5], [1, 2, 1]]) print (a) print("-----") b = np.sort(a, axis=1) # axis=1 表示按行排序,默认升序 print ("b=","

Numpy:复制理解 b = a、b = a.view()、d = a.copy()

一.复制形式 1:b = a 用等号(=)赋值,内存一样,a变化 ,b也会变化 import numpy as np a = np.arange(12) b = a print(b is a) # 返回 True b.shape = (3,4) print ("a.shape=",a.shape) # a.shape= (3, 4) print (id(a)) # 2493855732640 print (id(b)) # 2493855732640 二.复制形式 2:c = a.vi

Numpy:点积和 dot() 矩阵相乘

一.Numpy的点积和dot矩阵相乘 dot()使用需注意:前一个矩阵的行数要与后一个矩阵的列数一致 import numpy as np print("============点积:A*B,对应位置相乘===============") A = np.array( [[1,1], [0,1]] ) B = np.array( [[2,0], [3,4]] ) print ("A=","\n",A) print ("B=",&

numpy:数组的运算与广播机制

先将模块导入到文件中 import numpy as np 创建两个数组 arr1 = np.array([[1, 1], [3, 3]]) arr2 = np.array([[1, 2], [3, 4]]) 1.数组的运算 (1)四则运算 print("数组相加:\n", arr1 + arr2) # 对应位置元素相加 print("数组相减:\n", arr1 - arr2) # 对应位置元素相减 print("数组相乘:\n", arr1

python 值比较判断,np.nan is np.nan 却 np.nan != np.nan ,pandas 单个数据框值判断nan

pandas中DataFrame,Series 都有 isnull()方法,而数据框却没有,用了就会报错:AttributeError: 'float' object has no attribute 'isnull' 怎么判断单个框是否为 np.nan Python常规的判断,==,和is, 这对None是有效的 None is NoneOut[49]: True None == NoneOut[50]: True 而对,np.nan,只能用is da1pd.ix[6000996,u'团队']