Python笔记(1)

python笔记(1)

1. tf.clip_by_value()

tf.clip_by_value(A, min, max)的作用是把输入A都压缩在min和max之间,大于max的会被压缩为max,小于min的会被压缩为min。

import tensorflow as tf  
sess = tf.InteractiveSession()  
a = tf.constant([1,2,3,4,5],shape = [5])    
print(a.eval())#[1,2,3,4,5] 
b = tf.clip_by_value(a, 2, 4)   
print(b.eval())#[2,2,3,4,,4]    

2. np.argsort()

argsort(a, axis=-1, kind=’quicksort’, order=None)函数返回的是数组值从小到大的索引值

a = np.array([[1,4,2],[7,12,6]])
b = np.argsort(a)
c = np.argsort(a)[::-1]#把得到的结果reverse,如果结果是一维的就变成了降序排列
print(b)#[[0 2 1] [2 0 1]]
print(c)#[[2 0 1] [0 2 1]]

3. np.nonzero()

nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。

b1 = np.array([True, False, True, False])   
np.nonzero(b1)  #(array([0, 2]),) 

对于二维数组b2,nonzero(b2)所得到的是一个长度为2的元组。它的第0个元素是数组a中值不为0的元素的第0轴的下标,第1个元素则是第1轴的下标,因此从下面的结果可知b2[0,0]、b[0,2]和b2[1,0]的值不为0:

b2 = np.array([[True, False, True], [True, False, False]])  
np.nonzero(b2) #(array([0, 0, 1]), array([0, 2, 0]))

当布尔数组直接做为下标时,相当于使用由nonzero()转换之后的元组作为下标对象,但是注意布尔数组的size要和原数组的size相同,否则在python3中会报错

a = np.array([True, False, True])
b = np.array([0, 1, 2])
print(b[a])#[0,2]
print(b[np.nonzero(a)])#[0,2]

4. sys.stdin

python3中input每次只能输入一行,如果输入的行数不知道,那么就不能用input来接收,因为每次用ENTER换行就会让程序往后面继续运行。可以使用sys中的sys.stdin,比如下面一个例子是2017网易校招编程题。

import sys

# 定义一个空列表,记录所有料理包含的所有材料;
need = [] # 依次读取系统输入;

# 此处没有用raw_input,是因为只能输入一行,换行,程序就结束;
# sys.stdin想要结束输入,直接用ctrl+d或者ctrl+z;
for line in sys.stdin:
    needline = line.split()
    need.extend(needline)

# 通过将列表格式转换为集合格式,去除列表中重复的元素;
lastNeed = set(need)

# 使用pyhton内置函数len(),得到需要材料的个数;
print (len(lastNeed))

5. tf.tile

tf.tile(A, b)是对张量A进行复制,A的维数和b的元素个数必须相等,代表在A的第i维复制b[i]份。

sess = tf.InteractiveSession()
a = tf.constant([[1, 2],[2, 3],[3, 4]])
b = tf.tile(a, [2,3])
print(b.eval())

输出为:

[[1 2 1 2 1 2]
 [2 3 2 3 2 3]
 [3 4 3 4 3 4]
 [1 2 1 2 1 2]
 [2 3 2 3 2 3]
 [3 4 3 4 3 4]]

6. map

当我们有一个list,需要把其行和列进行转置的时候,可以用到map(如果在numpy中,可以用numpy.transpose() ),比如:

x = [0,1,2]
y = [1,2,3]
coord = [x,y]
m = list(map(list,zip(*coord)))
print(m)    #[[0,1],[1,2],[2,3]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值