tensorflow2.0 numpy python 图像、数组、shape、合并、转换、重置相关的处理办法集合

懒人专属

图像相关

#引入必要的图像处理库
from tensorflow.keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from tensorflow.keras.preprocessing import image
import numpy as np

#打开一个图片文件  并指定尺寸 和 颜色模式
img = load_img('D:\\myproject\\tensorflow2\\smile\\4.png', target_size = (28, 28), color_mode="grayscale")

#图片数据转np数组
array_i = img_to_array(img)
#np数组转图片数据
img = array_to_img(array_i)

#改变numpy array以及image的数组形状 将目标改为28.28的形状
new_array_i = np.reshape(array_i,(28,28))

数组相关

import numpy as np
#创建指定大小的数组,数组元素以 0 来填充。有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
x = numpy.zeros(2828, dtype = float, order = 'C')
#同样效果的还有1和空
numpy.ones,numpy.empty

#创建范围数组1
a = np.linspace(1,10,5,endpoint= True) #包含最终值 10
print(a) # [ 1.    3.25  5.5   7.75 10.  ]
b = np.linspace(1,10,5,endpoint= False)#不包含最终值10
print(b) #[1.  2.8 4.6 6.4 8.2]
c = np.linspace(1,10,5,retstep = False) # 不返回间隔值
print(c) # [ 1.    3.25  5.5   7.75 10.  ]
d = np.linspace(1,10,5,retstep = True) # 返回间隔值
print(d) # (array([ 1.  ,  3.25,  5.5 ,  7.75, 10.  ]), 2.25)

#创建范围数组numpy.arange(start, stop, step, dtype)
x = np.arange(5)  #output :[0  1  2  3  4]
x = np.arange(10,20,2, dtype =  float) #output:[10.  12.  14.  16.  18.]  

#直接创建数组 a and b
a = np.array([
	[0,1,2],
	[3,4,5],
	[6,7,8]
])
b = np.array([
	[10,11,12],
	[13,14,15],
	[16,17,18]
])

#查看数组元素的总个数,相当于 .shape 中 n*m 的值
a.size	#output: 9

#查看纬度
a.shape #output:(3, 3)

#向数组追加数据
new_a = np.apend(a, (28,28,1))

#水平合并
x = np.hstack((a,b))
x = np.concatenate((a,b),axis=1)
#output:
#[[0,1,2,10,11,12],
#[3,4,5,13,14,15],
#[6,7,8,16,17,18]]

#垂直组合
x = np.vstack((a,b))
x = np.concatenate((a,b),axis=0)
#output:
#[[0,1,2],
#[3,4,5],
#[6,7,8],
#[10,11,12],
#[13,14,15],
#[16,17,18]]

你可能感兴趣的:(#,深度学习,#,tensorflow,#,python)