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,它是伪随机数产生器的种子,对于某一个伪随机数发生器,只要该种子相同,产生的随机数序列就是相同的

posted @ 2017-08-16 09:36  松源兄  阅读(162)  评论(0编辑  收藏  举报