门户网站建设存在问题与不足vi设计主要做什么
文章目录
- 1多维数组
 - 压缩维度
 - 扩充维度
 
- 2numpy类型转换
 - 深度学习常见的float32类型。
 
- 3数组扁平化
 - 4np.where()的用法
 - 5np.argmax()
 - 6图像拼接
 - 7生成同shape的图片,指定数据类型
 
1多维数组
a.shape=(3,2);既数组h=3,w=2
 a.shape=(2,3,2);这里第一个2表示axis=0维度上的,三维数组中3,2)数组的个数,这里表示两个(3,2)数组。
压缩维度
- 这里axis=0指代哪里是很重要的知识点。深度学习中经常压缩一个维度,axis=0。
 
numpy.squeeze()函数。
语法:numpy.squeeze(a,axis = None);作用是将shape维度为1的去掉,但通常我们会指定axis=0,去除batchsize的维度。
扩充维度
- np.expand_dims(a, axis=1)将得到shape为(m, 1, n, c)的新数组,新数组中的元素与原数组a完全相同。
np.expand_dims(a, axis=2)将得到shape为(m, n, 1, c)的新数组,新数组中的元素与原数组a完全相同。
np.expand_dims(a, axis=3)将得到shape为(m, n, c, 1)的新数组,新数组中的元素与原数组a完全相同。
————————————————
版权声明:本文为CSDN博主「dekiang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41560402/article/details/105289015 

 
2numpy类型转换
深度学习常见的float32类型。
- 函数
 
a.dtype = ‘float32’
>>> a = np.random.random(4)
>>> a
array([ 0.0945377 ,  0.52199916,  0.62490646,  0.21260126])
>>> a.dtype
dtype('float64')
>>> a.shape
(4,)
 
>>> a.dtype = 'float32'
>>> a
array([  3.65532693e+20,   1.43907535e+00,  -3.31994873e-25,1.75549972e+00,  -2.75686653e+14,   1.78122652e+00,-1.03207532e-19,   1.58760118e+00], dtype=float32)
>>> a.shape
(8,)
 
3数组扁平化
假设C为三维数组
 A = C.flatten()
4np.where()的用法
- 一维数组,返回一个array
 
a = np.arange(8)
a
array([0, 1, 2, 3, 4, 5, 6, 7])np.where(a>4)
(array([5, 6, 7], dtype=int64),)
 
- 二维数组,返回两个array。返回的第一个array表示行坐标,第二个array表示纵坐标,两者一一对应。
 
b = np.arange(4*5).reshape(4,5)b
array([[ 0,  1,  2,  3,  4],[ 5,  6,  7,  8,  9],[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]])np.where(b>14)
(array([3, 3, 3, 3, 3], dtype=int64), array([0, 1, 2, 3, 4], dtype=int64))
 
5np.argmax()
作用:在axis方向上找最大值的坐标。
- 语义分割中将多通道预测结果pred_mask转化为单通道mask
np.argmax(pre_mask,axis=0)。即:在通道方向上找到哪个通道的置信度最大,比如1通道表示“汽车”,2“人”,3“猴子”,那么返回的索引值刚好对应label,将不同类别的像素点用不同颜色填充在原图上,这样就可以起到分割的效果。 
6图像拼接
np.hstack h-horizontal 水平方向拼接
np.hstack(array1,array2)
 
np.vstack vertical 竖直方向拼接
np.vstack(array1,array2)
 
7生成同shape的图片,指定数据类型
# 以下是常用的两种类型
b = np.zeros(a.shape,dtype='float32')
dtype = np.int 
dtype = 'int8'
