Python列表推导式中使用if-else
directories = [d for d in os.listdir(data_dir) if os.path.isdir(os.path.join(data_dir, d))]
[x for x in data if condition]
此处if主要起条件判断作用,data数据只有满足if条件的才会被留下、[exp1 if condition else exp2 for x in data]
此时if-else主要起赋值作用,当data的数据满足fi条件时将其做exp1处理,否则按照exp2处理 Python reshape -1的含义
a = np.array([[1,2,3], [4,5,6]])
np.reshape(a, (3,-1))
array([[1, 2], [3, 4], [5, 6]])
-1表示我懒得计算该填什么数字,由python通过a和其他的值3推测出来。 a = np.floor(10 * np.random.random((3,4)))print(a)a.reshape(2,-1)print(a)
最后reshape以后我觉得应该是2行6列的array,但是最后为什么还是输出的是3行4列的array?
因为reshape函数是不会改变原始ndarray对象的数据结构,你需要重新赋值给其他变量Python 张量中常用的axis参数
参数:axis
此参数说明操作在哪些维度(轴)上做运算 针对numpy中的数组,维度是2,也就是有两层嵌套数组,即有两个[],axis的取值只能为0,1。a = np.array([[1,2,3],[4,5,6]]) np.sum(a) -->21 np.sum(a,axis=0) -->[5,7,9] np.sum(a,axis=1) -->[6,15]
如上所示,如果不加axis参数,则默认对所有元素进行sum操作。当axis=0,a去掉一层[],变为[1,2,3],[4.5.6],则是[1,2,3]+[4,5,6]。axis=1,a去掉两层[],变为1,2,3 4,5,6两个组,得到结果为[6,15] Tensorflow中的transpose函数
x = [[1,3,5], [2,4,6]]tf.transpose(x, perm=[1, 0])
结果为
[[1,2], [3,4], [5,6]]
prem[1,0]代表将数组的行和列进行交换,代表矩阵的逆置,转置后为3行2列
对于三维数组prem的三个参数,分别代表三维数组的高,行,列伪随机数生成
rng=numpy.random.Randomstate(1)array=rng.uniform(0,1(3,2))
这段代码产生一个3行两列的assarray,其中每个元素都是[0,1]区间的均匀分布的随机数
Randomstate函数的参数1,它是伪随机数产生器的种子,对于某一个伪随机数发生器,只要该种子相同,产生的随机数序列就是相同的