一:type(),dtype,astype()的用法
type(a),a.dype--不要带括号,a.astype(str),当a中的为数组如[1,2,3]时,使用astype(str)会使得数组中的元素变为str类型
二:isinstance(a,b)的用法
a为变量,b为数据类型,.instance()无法判断两个变量是否为同一类型
第二个参数可以为元组类型,若a为元组中参数类型的一种,则返回True,如.instance(a,(int,str,float))
三:strip()、lstrip()、rstrip()的用法
四:numpy中的array与asarray()的用法
import numpy as np
#example 2:
arr1=np.ones((3,3))
arr2=np.array(arr1)
arr3=np.asarray(arr1)
arr1[1]=2
print 'arr1:\n',arr1
print 'arr2:\n',arr2
print 'arr3:\n',arr3
output:
arr1:
[[ 1. 1. 1.]
[ 2. 2. 2.]
[ 1. 1. 1.]]
arr2:
[[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
arr3:
[[ 1. 1. 1.]
[ 2. 2. 2.]
[ 1. 1. 1.]]
asarray会跟着原来的变量改变(有着相同的地址)
五:python中os.path常用函数
os.path.sep:路径分隔符 linux下就用这个了’/’---目前用到过
os.path.altsep: 根目录
os.path.curdir:当前目录
os.path.pardir:父目录
os.path.abspath(path):绝对路径
os.path.join(): 常用来链接路径--目前用到过
os.path.split(path): 把path分为目录和文件两个部分,以列表返回
os.path.dirname(path):把path分为目录和文件两个部分,仅返回目录--目前用到过
可以看出__file__表示了当前文件的path
六: numpy中 .size 的用法
# -*- coding: UTF-8 -*-
import numpy as np
import math
a = np.random.choice(10,(2,5),replace=True,p=None)
b = np.random.choice(10,(2,5),replace=False,p=None)
print(a.size)
print(b.shape)
c = np.array([[[1,2,1],[4,5]],[[0,0],[1,1]]])
print(c.size)
print(c.shape)
print(c)
print(type(c))
print(type(c[0][0]))
d = np.array([[[1,2],[4,5]],[[0,0],[1,1]]])
print(type(d))
print(type(d[0][0]))
print(d[0][0])
10
(2, 5)
4
(2, 2)
[[list([1, 2, 1]) list([4, 5])]
[list([0, 0]) list([1, 1])]]
<class 'numpy.ndarray'>
<class 'list'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
[1 2]
数组中的数字个数要一致,不然类型会自动转为list
七:图片的保存
使用mpimg.imread()读取的图片,类型为array,当对img做了修改且想保存新的图片img2时,可以使用:
要保持原图跟处理后的图类型一致:
如: 原来的图为png格式的二值图(0与1),处理过后(含有0,0.5,1三种值),
保存为jpeg或者jpg时,值的范围会改变为[0,255]
1. scipy.mics.imsave('./',img2) ---推荐使用
2. img2 = Image.fromarray(img)
img2.save('/home/wxj/桌面/PIL.png')
报错:OSError: cannot write mode F as PNG
3. 如果要保存plt.figure() 中的图片,使用plt.figsave()
使用plt.figure()显示的二值图片,视觉效果会有所改变
八. Opencv 二值图(包含0与0.5)在程序中直接可视化,值为0与0.5,若用opencv 读取保存后的二值图再可视化,值为0与255,且后者会出现像素框(前者不出现)