学习python和anaconda的经验

PYTHON

1 常用命令

1.1
1.1 注释
Python注释多行的方法有以下三种:使用ctrl+/实现多行注释、在每一行的开头使用shift+#键、输入’‘’ ‘’'或者"“” “”",将要注释的代码插在中间

1.2 def init( ):函数
区分两个函数:
1.def init(self):
这种形式在__init__方法中,只有一个self,指的是实例的本身,但是在方法的类部,包含两个属性:name、year。它允许定义一个空的结构,当新数据来时,可以直接添加。实例化时,需要实例化之后,再进行赋值。
2.def init(self, 参数1,参数2,···,参数n):
这种形式在定义方法时,就直接给定了两个参数name和grade,且属性值不允许为空。实例化时,直接传入参数。

这两种初始化形式,就类似于C++类中的构造函数。
形式1:def_init_(self)
class Student_Grade:
def init(self): # 类似于c++中的默认构造函数
self.name = None
self.grade = None

def print_grade(self):
    print("%s grade is %s" % (self.name,self.grade))

这种形式在__init__方法中,只有一个self,指的是实例的本身,但是在方法的类部,包含两个属性,name, grade。它允许定义一个空的结构,当新数据来时,可以直接添加。实例化时,需要实例化之后,再进行赋值。

形式2:def_init_(self, 参数1,参数2,···,参数n)
class Student_Grade:
def init(self, name, grade): #类似于C++中的有参构造函数
self.name = name
self.grade = grade
这种形式在定义方法时,就直接给定了两个参数name和grade,且属性值不允许为空。实例化时,直接传入参数。

总结:
1、self是形式参数,当执行s1 = Student(“Tom”, 8)时,self等于s1;当执行s2 = Student(“sunny”, 7)时,self=s2。
2、两种方法的区别在于定义函数时属性赋值是否允许为空和实例化时是否直接传入参数,个人觉得第二种更为简洁。
————————————————
版权声明:本文为CSDN博主「沫燃清荷」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26005373/article/details/99942134

2 常用函数(、np/pd)

内置函数、Numpy and pandas
2.1 内置函数
2.1.1 reversed 函数
reversed 函数返回一个反转的迭代器。
reversed(seq)
参数:seq – 要转换的序列,可以是 tuple, string, list 或 range。
返回值:返回一个反转的迭代器。
2.1.2 random
random模块使用Mersenne Twister算法来计算生成随机数。这是一个确定性算法,但是可以通过random.seed()函数修改初始化种子。
random.seed() # Seed based on system time or os.urandom()
random.seed(12345) # Seed based on integer given
random.seed(b’bytedata’) # Seed based on byte data
对于random.seed(n),如果使用相同的n值,则随机数生成函数每次生成的随机数序列都相同;如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数序列因时间差异而不同。

本例中,每次循环时random.random( )都采用9作为初始化的种子,生成相同的随机数序列。多次运行这个示例代码,所得结果都是一样的,因为在本例中,使用的seed()值都是9,所以random.random()每次生成的随机数序列都相同。

在本例中,使用的seed()值都是9,所以random.random( )每次生成的随机数序列都相同,但是random.seed(9)在循环内部,print(random.random( ))这行命令每一次输出时都定位到所生成的随机数列表的第一个元素。

2.2 Numpy
Import numpy as np
2.2.1 numpy.random.uniform介绍:
函数原型: numpy.random.uniform(low,high,size)
功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.
参数介绍:
low: 采样下界,float类型,默认值为0;
high: 采样上界,float类型,默认值为1;
size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出mnk个样本,缺省时输出1个值。
返回值:ndarray类型,其形状和参数size中描述一致。
这里顺便说下ndarray类型,表示一个N维数组对象,其有一个shape(表维度大小)和dtype(说明数组数据类型的对象),使用zeros和ones函数可以创建数据全0或全1的数组,原型:
numpy.ones(shape,dtype=None,order=‘C’),
其中,shape表数组形状(m*n),dtype表类型,order表是以C还是fortran形式存放数据。
2.2.2 类似uniform,还有以下随机数产生函数:
a. randint: 原型:numpy.random.randint(low, high=None, size=None, dtype=‘l’),产生随机整数;
b. random_integers: 原型: numpy.random.random_integers(low, high=None, size=None),在闭区间上产生随机整数;
c. random_sample: 原型: numpy.random.random_sample(size=None),在[0.0,1.0)上随机采样;
d. random: 原型: numpy.random.random(size=None),和random_sample一样,是random_sample的别名;
e. rand: 原型: numpy.random.rand(d0, d1, …, dn),产生d0 - d1 - … - dn形状的在[0,1)上均匀分布的float型数。
f. randn: 原型:numpy.random.randn(d0,d1,…,dn),产生d0 - d1 - … - dn形状的标准正态分布的float型数。
————————————————
原文链接:https://blog.csdn.net/u013920434/article/details/52507173

####################################################

-- coding: utf-8 --

import matplotlib.pyplot as plt
import numpy as np

s = np.random.uniform(0,1,1200) # 产生1200个[0,1)的数
count, bins, ignored = plt.hist(s, 12, normed=True)
“”"
hist原型:
matplotlib.pyplot.hist(x, bins=10, range=None, normed=False, weights=None,
cumulative=False, bottom=None, histtype=‘bar’, align=‘mid’,
orientation=‘vertical’,rwidth=None, log=False, color=None, label=None,
stacked=False, hold=None,data=None,**kwargs)
输入参数很多,具体查看matplotlib.org,本例中用到3个参数,分别表示:s数据源,bins=12表示bin
的个数,即画多少条条状图,normed表示是否归一化,每条条状图y坐标为n/(len(x)`dbin),整个条状图积分值为1
输出:count表示数组,长度为bins,里面保存的是每个条状图的纵坐标值
bins:数组,长度为bins+1,里面保存的是所有条状图的横坐标,即边缘位置
ignored: patches,即附加参数,列表或列表的列表,本例中没有用到。
“”"
plt.plot(bins, np.ones_like(bins), linewidth=2, color=‘r’)
plt.show()
————————————————
版权声明:本文为CSDN博主「ma_studd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013920434/article/details/52507173
2.2.3 np.argmax()函数

np.argmax是用于取得数组中每一行或者每一列的的最大值。常用于机器学习中获取分类结果、计算精确度等。
函数:numpy.argmax(array, axis)
array:代表输入数组;axis:代表对array取行(axis=0)或列(axis=1)的最大值

2.2.4 numpy.array()函数
numpy.array(object, dtype=None)
各个参数意义:
object:创建的数组的对象,可以为单个值,列表,元胞等。
dtype:创建数组中的数据类型。
返回值:给定对象的数组。

2.2.5 numpy.random.randint

numpy.random.randint(low, high=None, size=None, dtype=‘l’)
函数的作用是,返回一个随机整型数,范围从低(包括)到高(不包括),即[low, high)。
如果没有写参数high的值,则返回[0,low)的值。
参数如下:
low: int
生成的数值最低要大于等于low。
(hign = None时,生成的数值要在[0, low)区间内)
high: int (可选)
如果使用这个值,则生成的数值在[low, high)区间。
size: int or tuple of ints(可选)
输出随机数的尺寸,比如size = (m * n* k)则输出同规模即m * n* k个随机数。默认是None的,仅仅返回满足要求的单一随机数。
dtype: dtype(可选):
想要输出的格式。如int64、int等等
输出:
out: int or ndarray of ints
返回一个随机数或随机数数组
————————————————
版权声明:本文为CSDN博主「安ann」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011851421/article/details/83544853

2.3 pandas
import pandas as pd
2.3.1 Pandas写入Excel函数
Pandas写入Excel函数——to_excel 技术总结
Pandas作为Python数据分析的一个常用包,经常会与Excel交互。
最近经常使用pandas的to_excel函数,发现坑还不少。经常报错,覆盖写入,让人烦躁。甚至Run一遍后,excel文件里只剩一个sheet或者文件根本打不开。
一、单个sheet写入:
import pandas as pd
df1 = pd.DataFrame({‘One’: [1, 2, 3]})
df1.to_excel(‘excel1.xlsx’, sheet_name=‘Sheet1’, index=False) # index false为不写入索引,true为写入索引
#####excel1.xlsx 不存在的话,则会新建文件,再写入 Sheet1。excel1.xlsx 已存在的话,则会新建,写入,再覆盖。所以无论 excel1.xlsx 是否存在,上述代码的结果是一样的。它的作用就是新建 excel1.xlsx(文件已存在则覆盖),写入 Sheet1。excel1.xlsx 中最后只有一个表 Sheet1。

当Pandas要写入多个sheet时,to_excel第一个参数excel_writer要选择ExcelWriter对象,不能是文件的路径。否则,就会覆盖写入。ExcelWriter可以通过上下文管理器来执行,省去save(),优雅。
二、多个sheet写入到同一个Excel
import pandas as pd
df1 = pd.DataFrame({‘One’: [1, 2, 3]})
df2 = pd.DataFrame({‘Two’: [4, 5, 6]})
with pd.ExcelWriter(‘excel1.xlsx’) as writer:
df1.to_excel(writer, sheet_name=‘Sheet1’, index=False)
df2.to_excel(writer, sheet_name=‘Sheet2’, index=False)
###########Once a workbook has been saved it is not possible write further data without rewriting the whole workbook.
to_excel的Doc中有上面一句话,所以,ExcelWriter可以看作一个容器,一次性提交所有to_excel语句后再保存,从而避免覆盖写入

你可能感兴趣的:(经验技巧,科研技巧,python,学习,开发语言)