文档详情

Python数据分析之堆叠数组函数示例总结.docx

发布:2025-05-14约3.39千字共6页下载文档
文本预览下载声明

Python数据分析之堆叠数组函数示例总结

目录numpy堆叠数组ravel()函数stack()函数vstack()函数hstack()函数concatenate()函数

numpy堆叠数组

在做图像和nlp的数组数据处理的时候,经常需要实现两个数组堆叠或者连接的功能,这就需用到numpy库的一些函数,numpy库中的常用堆叠数组函数如下:

stack:Joinasequenceofarraysalonganewaxis.hstack:Stackarraysinsequencehorizontally(columnwise).vstack:Stackarraysinsequencevertically(rowwise).dstack:Stackarraysinsequencedepthwise(alongthirdaxis).concatenate:Joinasequenceofarraysalonganexistingaxis.

ravel()函数

ravel()方法可让将多维数组展平成一维数组。如果不指定任何参数,ravel()将沿着行(第0维/轴)展平/拉平输入数组。

示例代码如下:

std_array=np.random.normal(3,2.5,size=(2,4))

array1d=std_array.ravel()

print(std_array)

print(array1d)

程序输出结果如下:

[[5222

[2912]

[52222912

stack()函数

stack()函数原型是stack(arrays,axis=0,out=None),功能是沿着给定轴连接数组序列,轴默认为第0维。

1,参数解析:

arrays:类似数组(数组、列表)的序列,这里的每个数组必须有相同的shape。axis:默认为整形数据,axis决定了沿着哪个维度stack输入数组。

2,返回:

stacked:ndarray类型。Thestackedarrayhasonemoredimensionthantheinputarrays.

实例如下:

importnumpyasnp

#一维数组进行stack

a1=np.array([1,3,4])#shape(3,)

b1=np.array([4,6,7])#shape(3,)

c1=np.stack((a,b))

print(c1)

print(c1.shape)#(2,3)

#二维数组进行堆叠

a2=np.array([[1,3,5],[5,6,9]])#shape(2,3)

b2=np.array([[1,3,5],[5,6,9]])#shape(2,3)

c2=np.stack((a2,b2),axis=0)

print(c2)

print(c2.shape)

输出为:

[[134][467]]

(2,3)

[[[135][569]][[135][569]]](2,2,3)

可以看到,进行stack的两个数组必须有相同的形状,同时,输出的结果的维度是比输入的数组都要多一维的。我们拿第一个例子来举例,两个含3个数的一维数组在第0维进行堆叠,其过程等价于先给两个数组增加一个第0维,变为1*3的数组,再在第0维进行concatenate()操作:

a=np.array([1,3,4])

b=np.array([4,6,7])

a=a[np.newaxis,:]

b=b[np.newaxis,:]

np.concatenate([a,b],axis=0)

输出为:

array([[1,2,3],[2,3,4]])

vstack()函数

vstack函数原型是vstack(tup),功能是垂直的(按照行顺序)堆叠

显示全部
相似文档