Python 学习集锦

Oct. 30, 2019, 2:55 p.m.

  • numpy数组和list之间的转换

# a为python的list类型
a=([3.234,34,3.777,6.33])

# 将a转化为numpy的array:  
np.array(a)
array([  3.234,  34.   ,   3.777,   6.33 ])

# 将a转化为python的list
a.tolist()
  • list查找元素

    Python有五种方式in, not in , count, index, find, 前两种是保留字, 都两种是列表。
a_list = ['a','b','c','hello']
# 判断是否在列表中,in 操作符, 返回True或False
'a'  in a_list 
# 判断是否不在列表中,not in 操作符, 返回True或False
‘a’ not in a_list
# 统计指定值在列表中出现的次数,count方法
a_list.count('a')
# 查看指定值在列表中的位置,index方法
a_list.index('a')
# String类型可用find方法查找字符串位置
a_list.find('a')
# 注:如果找到则返回第一个匹配的位置,如果没找到则返回-1,而如果通过index方法去查找的话,没找到的话会报错。
  • Dict操作集合

    链接

  • list数组元素统一转换类型

label_list = [int(i) for i in label_list]  # int
label_list =[str(i) for i in labelilst]   # str
  • print与sys.stdout

sys.stdout是python中的标准输出流,这个标准输出流默认是映射到打开脚本的窗口的,所以,我们的print操作会把字符打印到屏幕上。自然,我们可以通过修改这种映射关系来把我们的打印操作重定向到其它地方,例如特定的文件。方法就是给sys.stdout赋值,修改它的指向。看下面的例子:

import sys
sys.stdout = open('test.txt','w')
print 'Hello world'

可以看到,我们让sys.stdout指向了一个文件对象。然后,再执行打印操作,这时,hello world输出在了一个文件test.txt中:
参考:https://blog.csdn.net/he_and/article/details/80675070

  • parser.add_argument中的action

有一个比较有意思的传参方式:
比如在 demo1.py 中指定 action=’store_true’的时候:

parser.add_argument(‘–is_train’, action=’store_true’, default=False)

在运行的时候:
python demo1.py 默认是False
python demo1.py –is_train 是True, 注意这里没有给 is_train赋值。

这个用法是“开关”的作用。

  • 文件每次写入防止覆盖之前的内容

    with open(file, 'w') as f 替换成 with open(file, 'a') as f
import time

# 格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
# 输出: 2016-04-07 10:25:09

# 格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 
# 输出:Thu Apr 07 10:25:09 2016

# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
# 输出:1459175064.0
  • str与bytes之间的转换

# bytes object  
b = b"example"

# str object  
s = "example"  

# str to bytes  
sb = bytes(s, encoding = "utf8")  

# bytes to str  
bs = str(b, encoding = "utf8")  

# an alternative method  
# str to bytes  
sb2 = str.encode(s)  

# bytes to str  
bs2 = bytes.decode(b)
>>> str = 'hello is jj sj dbje hj'
>>> str.replace('j', 'h', 3)
'hello is hh sh dbje hj'
  • 错误和异常

    参考:https://www.runoob.com/python3/python3-errors-execptions.html

  • split()和rsplit()

    split(): 方法通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空字符,包括空格、换行(\n)、制表符(\t)等。
    rsplit(): 只不过是从字符串最后面开始分割。

  • np.ceil()

    np.ceil(ndarray):计算大于等于该值的最小整数。

>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
>>> np.ceil(a)
array([-1., -1., -0.,  1.,  2.,  2.,  2.])
  • np.floor()

    np.ceil()功能相反,floor值(ceiling向上取整,floor向下取整)。

  • python 执行shell命令或脚本

    参考:https://blog.csdn.net/bible_reader/article/details/82430371

  • numpy 数据类型dtype转换

    numpy中的数据类型转换,不能直接改原数据的dtype! 只能用函数astype()。

a = np.random.rand(2, 3)
a.dtype = "float32"
a.dtype = "float16"
a.dtype = "float64"  #float
a.dtype = "int64"
a.dtype = "int32"
a.dtype = "int8"
a.dtype = "int" # int
c=b.astype(int)
  • numpy.random()

    np.random.rand(100)
    np.random.rand(2, 100)
  • [AT] property的用法

    参考:https://www.cnblogs.com/phpper/p/10618775.html

  • 【BUG】ImportError: Something is wrong with the numpy installation. While importing we detected an

    解决方案:安装了多个版本的numpy, 一直uninstall到None, 然后再重新安装。

  • numpy的升维和降维:

    升维:np.expand_dims(a, axis=1)
    降维:np.squeeze(a)

  • numpy 数组重复:

    a = [1, 2, 3, 4]
    np.repeat:[1, 1, 2, 2, 3, 3, 4, 4]
    np.tile(a, 2):[1, 2, 3, 4, 1, 2, 3, 4]
    np.tile(a, (2, 1)):[[1, 2, 3, 4], [1, 2, 3, 4]]

  • 矩阵乘法

    对应元素相乘:c = a * b
    矩阵相乘:c = np.dot(a, b)

  • 去重并排序输出

    np.unique([1, 1, 2, 2, 3, 3]):[1, 2, 3]

  • 检查数据中的空值

    利用np.isnan(np.nan)进行检查,千千万万不要用 i == np.nan()来判断

Linux 命令集锦

一个不错的学习Linux命令的教程参考:http://billie66.github.io/TLCL/book/sedpastecutffmpeg轻松将.mp4格式转化为.wav, 嘿嘿嘿,来自胡…

工具资源链接集锦

文章标题:工具资源链接集锦文章内容: MAC OS Praat 下载地址

推荐使用 Firefox 访问此站点 | 友情链接: 胡鹏的博客  | Developed by zhangpeng | Copyright © 2018-2020 zhangpeng.ai