numpy二维数组拼接,numpy 数组拼接

numpy二维数组拼接,numpy 数组拼接,numpy数组拼接简单示例

本文主要介绍一个简单的numpy数组拼接的例子,涉及numpy数组的介绍,numpy数组的属性等。有一定的参考价值,有需要的朋友可以参考一下。

NumPy array是一个名为ndarray的多维数组对象。它由两部分组成:

实际数据

描述这些数据的元数据

大多数操作只关注元数据,而不改变底层的实际数据。

关于NumPy数组,有几件事您必须知道:

NumPy数组的下标从0开始。

同一NumPy数组中的所有元素必须是同一类型。

NumPy数组属性

在详细介绍NumPy数组之前。首先,详细介绍NumPy数组的基本性质。NumPy数组的维数叫做秩,一维数组的秩是1,二维数组的秩是2,以此类推。在NumPy中,每个线性数组称为一个轴,秩实际上就是轴的个数。例如,一个二维数组相当于两个一维数组,其中第一个一维数组中的每个元素都是一维数组。所以一维数组是NumPy中的轴,第一个轴相当于底层数组,第二个轴是底层数组中的数组。而轴数是——秩,是数组的维数。

NumPy数组中ndarray对象的更重要的属性是:

1.ndarray.ndim:数组的维数(即数组轴的个数),等于秩。最常见的是二维数组(矩阵)。

2.ndarray.shape:数组的维度。是一个整数元组,表示每个维度中数组的大小。例如,在二维数组中,它表示数组的“行数”和“列数”。Ndarray.shape返回一个长度为维数的元组,即ndim属性。

3.ndarray.size:数组元素的总数,等于shape属性中元组元素的乘积。

4.ndarray.dtype:表示数组中元素类型的对象。您可以使用标准Python类型创建或指定dtype。或者,您可以使用前一篇文章中介绍的NumPy提供的数据类型。

5.ndarray.itemsize:数组中每个元素的字节大小。例如,元素类型为float64的数组itemsiz的属性值为8(float64占用64位,每个字节为8,因此64/8占用8个字节),另一个示例是元素类型为complex32的数组项,属性值为4(32/8)。

6.ndarray.data:包含实际数组元素的缓冲区。因为元素通常是通过数组的索引获得的,所以通常不需要使用该属性。

数组拼接方法一

思路:先把数组变成列表,然后用列表的拼接函数append()和extend()拼接,最后把列表变成数组。

示例1:

将numpy作为np导入

a=np.array([1,2,5])

b=np.array([10,12,15])

a_list=list(a)

b_list=list(b)

a _列表.扩展(b _列表)

a _列表

[1, 2, 5, 10, 12, 15]

a=np.array(a_list)

a

数组([ 1,2,5,10,12,15])

这种方法只适合简单的一维数组拼接。因为转换过程比较耗时,所以一般不建议拼接大量数据。

数组拼接方法二

Idea: numpy提供了numpy.append (arr,values,axis=none)函数。对于参数说明,要么是数组,要么是数值;可以用append直接拼接两个数组,而不是三个或更多数组。append函数总是返回一维数组。

示例2:

a=np.arange(5)

a

数组([0,1,2,3,4])

附加(a,10)

数组([ 0,1,2,3,4,10])

a

数组([0,1,2,3,4])

b=np.array([11,22,33])

b

数组([11,22,33])

附加(a,b)

数组([ 0,1,2,3,4,11,22,33])

a

数组([[1,2,3],

[4, 5, 6]])

b=np.array([[7,8,9],[10,11,12]])

b

数组([[ 7,8,9],

[10, 11, 12]])

附加(a,b)

数组([ 1,2,3,4,5,6,7,8,9,10,11,12])

Numpy的数组没有动态改变大小的功能。numpy.append()函数每次重新分配整个数组,并将原始数组复制到新数组中。

数组拼接方法三

想法: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)

数组([[ 1,2,3],

[ 4, 5, 6],

[11, 21, 31],

[ 7, 8, 9]])

NP。concatenate ((a,b),axis=1) # axis=1表示对应行的数组被拼接。

数组([[ 1,2,3,11,21,31],

[ 4, 5, 6, 7, 8, 9]])

比较numpy.append()和numpy.concatenate()函数的运行时间。

示例4:

从时间导入时钟为现在

a=np.arange(9999)

b=np.arange(9999)

时间1=现在()

c=np.append(a,b)

时间2=现在()

打印时间2-时间1

28.2316728446

a=np.arange(9999)

b=np.arange(9999)

时间1=现在()

c=np.concatenate((a,b),axis=0)

时间2=现在()

打印时间2-时间1

20.3934997107

可见concatenate()效率更高,适合大规模数据拼接。

总结

这就是本文中numpy数组拼接的简单示例。希望对你有帮助。感兴趣的朋友可以继续参考这个网站:

浅谈numpy数组的几种排序方式

Python编程给numpy矩阵添加一列方法示例

Python numpy生成矩阵、串联矩阵代码分享

如有不足之处,欢迎留言指出。感谢您对本网站的支持!

numpy二维数组拼接,numpy 数组拼接