IPython有一组预先定义好的所谓的魔法函数(Magic Functions),你可以通过命令行的语法形式来访问它们。
magic函数分两种:一种是面向行的,另一种是面向单元型的。
- 行magic函数是用前缀“%”标注的,很像我们在系统中使用命令行时的形式,例如在Mac中就是你的用户名后面跟着“$”。“%”后面就是magic函数的参数了,但是它的参数是没有被写在括号或者引号中来传值的。
- 单元型magic函数是由两个“%%”做前缀的,它的参数不仅是当前“%%”行后面的内容,也包括了在当前行以下的行。
myfont = matplotlib.font_manager.FontProperties(fname=r'C:/Windows/Fonts/msyh.ttf')
关于字体可以这样操作
PyCharm是一种Python IDE
Numpy提供了几种数据保存的方法
- 以3*4数组a为例:
a.tofile("filename.bin")
这种方法只能保存为二进制文件, 这种保存方法对数据读取有要求,需要手动指定读出来的数据的的dtype,如果指定的格式与保存时的不一致,则读出来的就是错误的数据。
b = numpy.fromfile("filename.bin",dtype = **)
读出来的数据是一维数组,需要利用b.shape = 3,4
重新指定维数。 -
numpy.save("filename.npy",a)
利用这种方法,保存文件的后缀名字一定会被置为.npy,这种格式最好只用numpy.load("filename")
来读取。 -
numpy.savetxt("filename.txt",a)
b = numpy.loadtxt("filename.txt")
字符串前的u r b
b'NORMAL'
反正在这个例子中要记得加上
labels = [b'NO', b'DH', b'SL']
data = np.loadtxt('column_3C.dat', converters={6: lambda s: labels.index(s)} )
- b表示byte:python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前缀代表的就是bytes 。python2.x里, b前缀没什么具体意义, 只是为了兼容python3.x的这种写法
- u/U:表示unicode字符串:一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用utf8
- r/R:非转义的原始字符串:即如果是“\n”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。 以r开头的字符,常用于正则表达式,对应着re模块。
一种分块选取数据的方法,通过 list[range(a,b)]
# Divide into training and test set
training_indices = list(range(0,20)) + list(range(40,188)) + list(range(230,310))
test_indices = list(range(20,40)) + list(range(188,230))
trainx = x[training_indices,:]
trainy = y[training_indices]
testx = x[test_indices,:]
testy = y[test_indices]
np.random.permutation(x) 随机重排
-
If
x
is an integer, randomly permutenp.arange(x)
.>>> np.random.permutation(10) array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])
-
If
x
is an array, make a copy* and shuffle the elements randomly. -
应用举例
perm = np.random.permutation(178) trainx = data[perm[0:130],1:14]
GUI 输入数值
@interact_manual( feature=IntSlider(2,0,12), label=IntSlider(1,1,3))
第一个是initial value,第二三个是range
网友评论