随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

numpy函数hstack,vstack,dstack把几个小数组合并成一个大数组

vstack、hstack和dstack都用于把几个小数组合并成一个大数组。它们的差别是小数组的元素在大数组中的排列顺序有所不同

一、vstack

vstack实现了轴0合并。vstack的字母v表示vertical的意思,相当是追加的意思

numpy.vstack(tup)

tup:两个数组,除第一轴外,所有阵列的形状都必须相同。一维数组必须具有相同的长度

shape(N,)的1维数组已重塑为(1,N)后沿第一轴进行连接

复制代码
#这个是(2,),会变成(1,2),因此下面这两种结果是一样的
import numpy as np
a = [1,2]
b = [3,4]
c = np.vstack((a,b))
print(c)

#这个是(1,2)
a = [[1,2]]
b = [[3,4]]
c = np.vstack((a,b))
print(c)
'''
[[1 2]
 [3 4]]
[[1 2]
 [3 4]]
'''
复制代码

总结:有两列数据,然后再转置

pd.DataFrame(c)

 

 

二、hstack

  hstack表示轴1合并

a = [[1,2],
     [3,4]]
b = [[5],
     [6]]
print(np.hstack([a,b]))
# [[1 2 5]
#  [3 4 6]]

相当右边追加

三、dstack

看看之前使用到的

newvalues=np.dstack((np.repeat(t.reportno.values,list(map(len,t.data_list.values))),np.concatenate(t.data_list.values)))
pd.DataFrame(data=newvalues[0],columns=['reportno','data_list'])

沿深度方向(沿第三轴)按顺序堆叠数组

numpy.dstack(tup)

参数:

tup:sequence of arrays,两个数组,除第三个轴外,所有阵列的形状都必须相同。一维或二维阵列必须具有相同的形状。

值得注意的是:

shape(M,N)的2维数组已重塑为(M,N,1),shape(N,)的1维数组 已重塑为(1, N,1),再按照第三维相加

现在,a、b在2号轴上被连接起来。如果a、b是一维数组,或是二维数组,系统首先将a、b变为三维数组,再按照2号轴进行合并操作,把a追加到c中,再把b的元素排到c中。在结果中,来自于b的元素的2号轴的下标将变大,因此排到a的后面,但各元素其它轴的坐标不变。

复制代码
a = np.array((1,2,3))
b = np.array((2,3,4))
np.dstack((a,b))
'''
np.dstack((a,b))[0] 和上面的结果也是一样的
array([[[1, 2], [2, 3], [3, 4]]]) ''' np.dstack((a,b)).shape #(1, 3, 2) 沿第三轴相加,因此是1,3,2 a.shape #(3,) b.shape #(3,)
复制代码

再看二维的

复制代码
a = np.array([[1,2],
              [3,4]])
b = np.array([[5,6],
              [7,8]])
c = np.dstack([a,b])
print(c)
'''
[[[1 5]
  [2 6]]
 [[3 7]
  [4 8]]]
'''

print(c[:,:,0])
'''
[[1 2]
 [3 4]] 
'''

print(c[:,:,1])
'''
[[5 6]
 [7 8]]
'''

print(c[0])
print(c[1])
'''
[[1 5]
 [2 6]]
 
[[3 7]
 [4 8]]
'''
复制代码

看来这么多内在的东西,我们总结一下:

参数是一维时,其实就是就是两列数据,我们需要弄成df中的两列,二维时不清楚,反正就是对位merge

 

posted on   小小喽啰  阅读(895)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示