Python学习高光时刻记录2——(np.concatenate,np.zeros,np.transpose,enumerate)

1.np.concatenate()——数组拼接,可以拼接两个或多个数组

import numpy as np
a1=np.array([1,1,1])#1,3
b1=np.array([2,2,2])#1,3
A1=np.array([[1,1,1],[2,2,2]])#2,3
B1=np.array([[3,3,3],[4,4,4]])#2,3

np.concatenate((a1,b1),axis=0)#axis默认为0,可以不写
#输出:
array([1, 1, 1, 2, 2, 2])

np.concatenate((A1,B1),axis=0)
#输出:
array([[1, 1, 1],
       [2, 2, 2],
       [3, 3, 3],
       [4, 4, 4]])

np.concatenate((A1,B1),axis=1)#axis=1表示对应行数组拼接
#输出:
array([[1, 1, 1, 3, 3, 3],
       [2, 2, 2, 4, 4, 4]])

2.np.zeros(shape,dtype=float,order='C')——返回给定形状和类型的用0填充的数组

shape:数组形状,可以一维(如2)或者多维(如(2,3))

dtype:数据类型,如np.int8,np.float64

order:当为‘C'时,以行为先,当为'F'时,以列为先

import numpy as np
np.zeros(3,dtype=np.float64,order='C')#一维,浮点数
#输出:
array([0., 0., 0.])

np.zeros((2,3),dtype=np.int8,order='F')#二维,整数
#输出:
array([[0, 0, 0],
       [0, 0, 0]], dtype=int8)

3.np.transpose()——改变数组序列

对于二维矩阵

import numpy as np
a=np.arange(4).reshape(2,2)   #arange(4)为0,1,2,3,reshape改变数组形状,此处变为2维矩阵
print(a)
#输出:
[[0 1]
 [2 3]]

#各数据对应的坐标
a[0][0]==0
a[0][1]==1
a[1][0]==2
a[1][1]==3
a.transpose(0,1)  #表示按照原坐标轴改变序列,也就是保持不变
#输出:
array([[0, 1],
       [2, 3]])

a.transpose(1,0)  #表示交换 ‘0轴’ 和 ‘1轴’,改变了坐标轴序列
#输出:
array([[0, 2],
       [1, 3]])

#改变后各数据对应的坐标
a[0][0]==0
a[1][0]==1
a[0][1]==2
a[1][1]==3

对于三维矩阵

import numpy as np
b=np.arange(16).reshape(2,2,4)
#arange(16)为0到15,reshape转变为3维矩阵
print(b)
#输出:
[[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]]

#各数据对应的坐标
b[0][0][0] == 0
b[0][0][1] == 1
b[0][0][2] == 2
b[0][0][3] == 3

b[0][1][0] == 4
b[0][1][1] == 5
b[0][1][2] == 6
b[0][1][3] == 7

b[1][0][0] == 8
b[1][0][1] == 9
b[1][0][2] == 10
b[1][0][3] == 11

b[1][1][0] == 12
b[1][1][1] == 13
b[1][1][2] == 14
b[1][1][3] == 15

b.transpose(0,1,2)  #坐标轴不改变,矩阵保持不变
#输出:
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]]])

b.transpose(1,0,2)  #表示交换 ‘0轴’ 和 ‘1轴’,‘2轴’不变
#输出:
array([[[ 0,  1,  2,  3],
        [ 8,  9, 10, 11]],

       [[ 4,  5,  6,  7],
        [12, 13, 14, 15]]])

#坐标轴变换后各数据对应的坐标
b[0][0][0] == 0
b[0][0][1] == 1
b[0][0][2] == 2
b[0][0][3] == 3

b[1][0][0] == 4
b[1][0][1] == 5
b[1][0][2] == 6
b[1][0][3] == 7

b[0][1][0] == 8
b[0][1][1] == 9
b[0][1][2] == 10
b[0][1][3] == 11

b[1][1][0] == 12
b[1][1][1] == 13
b[1][1][2] == 14
b[1][1][3] == 15

可以看到4,5,6,7和8,9,10,11的‘0轴’ 和 ‘1轴’发生了互换

np.transpose参考自:https://blog.csdn.net/qq_45083975/article/details/104393611?utm_medium=distribute.pc_relevant.none-task-blog-title-10&spm=1001.2101.3001.4242

                            和    https://blog.csdn.net/u012762410/article/details/78912667

4.enumerate()——遍历对象(如列表,字符串)

list1=["a","b","c"]
for id,name in enumerate(list1):
    print(id,name)
#输出:   
0 a
1 b
2 c

 

numpy.concatenate()函数是一个能够一次完成多个数组的拼接的函数。它可以在指定的轴上将多个数组进行拼接。在使用该函数时,需要传入一个包含要拼接的数组的元组或列表,并指定拼接的轴。例如,可以使用该函数将多个一维数组或二维数组进行拼接。 在引用\[1\]中的示例中,展示了如何使用numpy.concatenate()函数进行数组的拼接。首先定义了两个三维数组a和b,然后使用该函数将它们在axis=1的轴上进行拼接,并将结果保存在变量LL和L中。最后打印输出了拼接后的结果。 在引用\[2\]中的示例中,展示了如何使用numpy.concatenate()函数对一维数组进行拼接。首先定义了三个一维数组a、b和c,然后使用该函数将它们在第一个轴方向进行拼接,并将结果保存在变量d中。最后打印输出了拼接后的结果。 在引用\[3\]中的示例中,展示了如何使用numpy.concatenate()函数对二维数组进行拼接。首先定义了两个二维数组a和b,然后使用该函数将它们在第一个轴方向进行拼接,并将结果保存在变量c中。最后打印输出了拼接后的结果。 #### 引用[.reference_title] - *1* [python np.concatenate()函数](https://blog.csdn.net/qq_37006426/article/details/116464003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python中的数组拼接函数——np.concatenate使用详解](https://blog.csdn.net/qq_33885122/article/details/129807803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值