转换维度python_Pythonnumpy数组维度转换(维度转
换),pythonnump。。。
在实践中,经常需要对中间数据或输出数据进⾏维度转换,保证多个数据间计算维度上的⼀致性。
⼀般主要涉及pytorch中tensorde的维度转换、numpy中array的维度转换。本篇先对array的维度转换⽅法进⾏总结,涉及的转换⽅法如下:
python货币转换
# reshape()
# ravel()
# flatten()
# transpose()
# resize()
具体⽤法:
array_01 = np.arange(24)
print('\narray_01:\n', array_01, '\narray shape:', array_01.shape)
# 输出:array_01是⼀个⼀维数组,数组元素24个
# array_01:
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
# array shape: (24,)
# reshape(n1,n2,...,ni)将数组转换成特定维度
# n1*n2*...*ni = 转换前数组元素的总数
array_02 = shape(3, 2, 4)
print('\narray_02:\n', array_02, '\narray shape:', array_02.shape)
# 输出:array_02是⼀个三维数组,channel为3,2⾏4列,3*2*4=24
# array_02:
# [[[ 0 1 2 3]
# [ 4 5 6 7]]
#
# [[ 8 9 10 11]
# [12 13 14 15]]
#
# [[16 17 18 19]
# [20 21 22 23]]]
# array shape: (3, 2, 4)
# ravel将多维数组转换为⼀维
array_03 = array_02.ravel()
print('\narray_03:\n', array_03, '\narray shape:', array_03.shape)
# 输出:array_03是⼀个⼀维数组,数组元素24个
# array_03:
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23] # array shape: (24,)
# flatten,与ravel相同,区别在是否拷贝
array_04 = array_02.flatten()
print('\narray_04:\n', array_04, '\narray shape:', array_04.shape)
# 输出:array_04是⼀个⼀维数组,数组元素24个
# array_04:
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23] # array shape: (24,)
# transpose转换坐标系,transpose(1, 2, 0)括号⾥的值表⽰坐标系的索引号
# 原始的坐标系为[c,h,w] 0-c,1-h,2-w
# 变换后的坐标系统[h,w,c]
array_05 = anspose(1, 2, 0)
print('\narray_05:\n', array_05, '\narray shape:', array_05.shape)
# 输出:array_05是⼀个三维数组
# array_05:
# [[[ 0 8 16]
# [ 1 9 17]
# [ 2 10 18]
# [ 3 11 19]]
#
# [[ 4 12 20]
# [ 5 13 21]
# [ 6 14 22]
# [ 7 15 23]]]
# array shape: (2, 4, 3)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。