排列的连接方法1
思路:首先将数组转换为列表,然后利用列表中的拼接函数append ()、extend () )等进行拼接处理,最后将列表转换为数组。
示例1 :
import numpy as np
a=NP.array ([ 1,2,5 ]
b=NP.array ([ 10,12,15 ]
a_list=list(a ) )
b_list=list(b ) )
a_list.extend(b_list ) )。
a_list
[1、2、5、10、12、15]
a=NP.Array(a_list ) )。
a
array ([ 1,2,5,10,12,15 ]
由于此方法仅适用于简单一维阵列拼接,且转换耗时,因此一般不推荐用于大量数据拼接。
排列的连接方法2
想法: numpy提供numpy.append(ARR,values,axis=None )函数。 参数化时,数组和数字中的任意两个数组,或者三个以上的数组不能直接用append连接。
示例2 :
a=NP.arange(5) )。
a
array ([ 0,1,2,3,4 ]
NP.append(a,10 ) )。
array ([ 0,1,2,3,4,10 ]
a
array ([ 0,1,2,3,4 ]
b=NP.array ([ 11,22,33 ]
B
array ([ 11,22,33 ]
NP.append(a,b ) )。
array ([ 0,1,2,3,4,11,22,33 ]
a
array ([ 1,2,3 ],
[ 4,5,6 ] )
b=NP.array ([ 7,8,9 ],[ 10,11,12 ] ) )
B
array ([ 7,8,9 ],
[ 10,11,12 ] )
NP.append(a,b ) )。
array ([ 1,2,3,4,5,6,7,8,9,10,11,12 ]
numpy数组没有动态调整大小的功能(numpy.append ) )函数每次都重新分配整个数组,并将原始数组复制到新数组中。
排列的连接方法3
想法: numpy提供numpy.concatenate((a1,a2,axis=0) )函数。 一次可以连接多个数组。 在此,a1、a2、是数组型的参数
示例3 :
a=NP.array ([ 1,2,3 ] ) )。
b=NP.array ([ 11,22,33 ]
c=NP.array ([ 44,55,66 ]
NP.concatenate((a,b,c ),axis=0) #默认情况下,axis=0可以不被写入
对于Array([1、2、3、11、22、33、44、55和66] )一维数组拼接,axis值不影响最终结果
a=NP.array ([ 1,2,3 ],[ 4,5,6 ] ) )
b=NP.array ([ 11,21,31 ],[ 7,8,9 ] ) )
NP.concatenate((a,b ),axis=0) ) ) )。
array ([ 1,2,3 ],
[ 4,5,6 ],
[ 11,21,31 ],
[ 7,8,9 ] )
NP.concatenate((a,b ),axis=1) axis=1表示对应的行的排列连接
array ([ 1,2,3,11,21,31 ],
[ 4,5,6,7,8,9 ] )
比较numpy.append (和numpy.concatenate )两个函数的执行时间
示例4 :
from time import clock as now
a=NP.arange(9999 ) )。
b=NP.arange(9999 ) )。
时间1=now ()
c=NP.append(a,b ) ) )。
时间2=now ()
打印时间2 -时间1
28.2316728446
a=NP.arange(9999 ) )。
b=NP.arange(9999 ) )。
时间1=now ()
c=NP.concatenate((a,b ),axis=0) ) ) ) ) ) )。
时间2=now ()
打印时间2 -时间1
20.3934997107
可见concatenate ()更高效,更适合大数据拼接
PS :更多的例子
import numpy as np
a=NP.array ([ 1,2 ],[ 3,4 ] ) )
a.shape
out [3] : (2,2 ) )。
b=NP.array ([ 5,6 ] ) ) ) )。
b.shape
out [5] : (1,2 ) )。
NP.concatenate((a,b ) ) ) )。
Out[6]:
array ([ 1,2 ],
[ 3,4 ],
[ 5,6 ] )
c=NP.concatenate((a,b ) )
c.shape
out [8] : (3,2 ) )。
d=NP.concatenate((a,b ),axis=0) ) ) ) ) ) )。
d.shape
out [ 10 ] : (3,2 ) )。
e=NP.concatenate((a,b ),axis=1) ) ) )。
跟踪后退(mostrecentcalllast ) :
文件',line 1,in
e=NP.concatenate((a,b ),axis=1) ) ) )。
value error 3360 alltheinputarraydimensionsexceptfortheconcatenationaxismustmatchexactly
e=NP.concatenate((a,b.T ),axis=1) ) )。
e .形状
out [ 13 ] : (2,3 ) )。
import numpy as np
a=NP.array ([ 1,2 ],[ 3,4 ] ) )
a.shape
out [3] : (2,2 ) )。
b=NP.array ([ 5,6 ] ) ) ) )。
b.shape
out [5] : (1,2 ) )。
NP.concatenate((a,b ) ) ) )。
Out[6]:
array ([ 1,2 ],
[ 3,4 ],
[ 5,6 ] )
c=NP.concatenate((a,b ) )
c.shape
out [8] : (3,2 ) )。
d=NP.concatenate((a,b ),axis=0) ) ) ) ) ) )。
d.shape
out [ 10 ] : (3,2 ) )。
e=NP.concatenate((a,b ),axis=1) ) ) )。
跟踪后退(mostrecentcalllast ) :
文件',line 1,in
e=NP.concatenate((a,b ),axis=1) ) ) )。
value error 3360 alltheinputarraydimensionsexceptfortheconcatenationaxismustmatchexactly
e=NP.concatenate((a,b.T ),axis=1) ) )。
e .形状
out [ 13 ] : (2,3 ) )。
希望以上是正文的全部内容,对大家的学习有帮助。 另外,请支持我们。