Python(一)
Python列表推导式中使用if-else#
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))
[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,它是伪随机数产生器的种子,对于某一个伪随机数发生器,只要该种子相同,产生的随机数序列就是相同的