Python数组中的维度小结

.shape查看数组维度.
正序例子:

import numpy as np
a=np.array([[[[1,2,3,4],[5,6,7,8],[0,0,0,0]],[[1,2,3,4],[5,6,7,8],[0,0,0,0]]]])
a.shape
(1,2,3,4)

逆推分析:
要想生成(1,2,3,4)这样的4维数组,那么最外层’[‘的数量得是4,形如[[[[.
第一个数要想是1,就得看这其中四级括号中[’[[[]]]‘],三级’[‘的数量得是1个,形如[[[[.]]]]
第二个数要想是2,就得看这其中三级括号中[[’[[]]‘]],二级’[‘的数量得是2个,形如[[[],[]]]
第三个数要想是3,就得看这其中二级括号中[[[’[]‘]]],一级’[‘的数量得是3个,形如[[[[],[],[]]]]
第四个数要想是4,就得看这其中一级括号中[[[[’‘]]]],元素的数量得是4个,形如[[[[’‘,’‘,’‘,’‘]]]]
组合以上信息就可以得到生成(1,2,3,4)这样的4维数组的形状,[[[[’‘,’‘,’‘,’‘],[’‘,’‘,’‘,’‘],[’‘,’‘,’‘,’‘]],[[’‘,’‘,’‘,’‘],[’‘,’‘,’‘,’‘],[’‘,’‘,’‘,’']]]]

关于’[…, tf.newaxis]‘中的’tf.newaxis’,简单理解其实就是为了在最后增加一个维度来适配模型输入输出所需要的整体维度,例如上述a如果是一个张量矩阵,维度为(1,2,3,4),经过以下操作变换

pred1.shape
(1,2,3,4)
pred_1 = tf.argmax(pred1, axis=-1)
pred_1.shape
TensorShape([1, 2, 3])
pred_1 = pred_1[..., tf.newaxis]
pred_1.shape
TensorShape([1, 2, 3, 1])

其中tf.argmax(pred1, axis=-1)的操作简单理解可以认为是降维,其中参数分别代表张量矩阵和需要降维的轴,-1代表最后一轴,进行矩阵的降维
例如一个222的矩阵
[[[1,2],
[3,4]]
[[1,4],
[3,2]]]
相当于是一个2层的2*2的8个积木堆在一起,然后如果此时axis=0,就按照习惯上称为z轴的方向上进行’压缩’.具体的例如’1’和’1’进行argmax,取1;'2’和’4’进行argmax,取4;'3’和’3’进行argmax,取3;'4’和’2’进行argmax,取4;最后得到一个二维张量矩阵
[[1,4],
[3,4]]
此时可以想象成是一个0层的2行2列的积木堆在一起
如果此时接着进行升维操作,例如上述的tf.newaxis操作,则会得到一个三维张量矩阵,形状是(2,2,1),具体表示即为
[[[1],
[4]],
[[3],
[4]]]
可以想象成是一个2层,2行1列的积木堆在一起
其中的…代表的矩阵的维度缺省,如果是二维矩阵可以相当于:,三维相当于::
dddd
np.set_printoptions(threshold=np.inf) 解决数组显示不全

保存数组中间变量list_img_size到本地:
需要import joblib

val_size = np.array(list_img_size)
joblib.dump(val_size,'val_size')
B=joblib.load('val_size')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值