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代表最后一轴,进行矩阵的降维
例如一个2 _2_2的矩阵
[[[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')

Original: https://blog.csdn.net/lc_dreams/article/details/123315584
Author: lc_dreams
Title: Python数组中的维度小结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/496931/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球