2021-06-11

1. 查找当前路径
import sys
print(sys.path, sys.argv[0])  #sys.path包含多个路径,首先是当前运行文件所在的home目录,然后是环境变量pythonpath
import os
print(os.getcwd())  #查看当前的工作目录
os.path.join('E:','file1')  #将目录进行链接
2. np保存加载numpy数组文件

(一个数组是npy文件,多个数组可以压缩在npz文件中,npz包含多个npy文件)
保存一个数组:numpy.save(filename, 数组)
加载一个数组:numpy.load(filepath)

os.chdir(r'C:\python数据分析')
ar = np.random.rand(5,5) 
print(ar) 
ar_load = np.load('arraytest.npy')

输出:

保存多个数组:

np.savez(file, *args, **kwds)

savez函数输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。

ar1 = np.random.rand(2,3)
ar2 = np.arange(4)
np.savez(r'C:\python数据分析\arraytest1.npz',ar1,ar2)

load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容。

r = np.load(r'C:\python数据分析\arraytest1.npz')
print(r)
print(r['arr_0'])
3. numpy和tensor的转换

定义tensor

tensor.constant([[1,2],[3,4]])

定义numpy

np.array([[1,2],[3,4]]), np.zeros((2,2))

将tensor转换为numpy:

tensor.numpy()

numpy转换为tensor:

tf.convert_to_tensor(numpy)
4.tensor.data.Dataset.from_tensor_slices()
它的作用是把给定的元组、列表和张量等数据进行特征切片。切片的范围是从最外层维度开始的。
如果有多个特征进行组合,那么一次切片是把每个组合的最外维度的数据切开,分成一组一组的。返回数据集dataset:
# 返回([([],[]),([],[]),...])
features, labels = (np.random.sample((6, 3)),  # 模拟6组数据,每组数据3个特征
np.random.sample((6, 1)))  # 模拟6组数据,每组数据对应一个标签,注意两者的维数必须匹配 
print((features, labels))  #  输出下组合的数据
data = tf.data.Dataset.from_tensor_slices((features,labels))
print(data)  # 输出张量的信息

在这里插入图片描述

5. tf.data.Dataset.zip((dataset_x1_x2, dataset_y))

tensorflow中的zip接受的数据是dataset
作用:通过将给定的数据集压缩在一起创建一个“数据集”。将数据集(列表)压缩到一起成为元组的列表

a = Dataset.range(1, 4)  # ==> [ 1, 2, 3 ]
b = Dataset.range(4, 7)  # ==> [ 4, 5, 6 ]
c = Dataset.range(7, 13).batch(2)  # ==> [ [7, 8], [9, 10], [11, 12] ]
d = Dataset.range(13, 15)  # ==> [ 13, 14 ] 
Dataset.zip((a, b))
# ==> [ (1, 4), (2, 5), (3, 6) ]
Dataset.zip((b, a))
# ==> [ (4, 1), (5, 2), (6, 3) ]
6. tf.reduce_mean(x,axis,keep_dims)
计算某一维度的平均值,keep_dims表示是否保持原来的维度,没指定则默认全部计算平均值
7. PIL:python image library

常用函数:
resize()方法可以缩小也可以放大,而thumbnail()方法只能缩小

reim=im.resize((128,128))
im.thumbnail((128,128))
8. inspect模块
1.对是否是模块、框架、函数进行类型检查
2.获取源码
3.获取类或者函数的参数信息
4.解析堆栈
inspect.getfile(object): 返回对象的文件名
inspect.currentframe()
获取当前文件的绝对路径:
current = os.path.abspath(inspect.getfile(inspect.currentframe()))
9. 控制台输入-configargparse模块
#得到一个解析:
p = configargparse.ArgParser(config_file_parser_class = YAMLConfigFileParser, default_config_files=[default])
p.add('-c', '--my-config', is_config_file=True, help='config file path')
p.add('--data', type=str, default=data, help='data name (coauthorship/cocitation)')
p.add('--',type=str, defaut=data,help='')
#返回解析:
args = p.parse_args()
#使用参数
args.data
10. get_attr(object, 属性名)
获取对象的属性值
11. python的pickle(pkl)文件格式加载和保存
可以用pickle序列化python的各种数据类型(如列表,字典,集合,类等),提供持久化功能,将对象以文件的形式存储在磁盘上。

pickle文件保存对象(序列化函数):pickle.dump(object,file[,protocol]

pickle.dump(obj, file[, protocol]) #序列化对象obj,并将结果数据流写入到文件对象file中
        param:
         obj,      输入对象,包含几乎所有的python数据类型(列表,字典,集合,类等)
         file,    表示保存到的类文件对象; 注意:file必须有write()接口,file可以是一个以'w'打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象。
         protocol,序列化模式
                   0:默认值,ASCII协议,表示以文本的形式序列化 
                   1:二进制的形式序列化(老式的二进制协议)
                   2:二进制的形式序列化(新的二进制协议)
                   3/4/-1:python3中指定的协议,目的是让python2.x无法解析
eg. pickle.dump(dataset, f, -1) //protocol为-1,python3中指定的协议,默认为3,当<0时,值为4

pickle文件读取对象(反序列化函数):

pickle.load(file)
with open(save_file, 'wb') as f: //f为可用'wb'写入的二进制文件
	pickle.load(file) 
#反序列化对象, 将文件中的数据解析为一个Python对象
#注意:在load(file)的时候,要让python能够找到类的定义,否则会报错
#file中有read()接口和readline()接口
12.np.eye()/np.identify():
numpy.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)
返回的是一个二维2的数组(N,M),对角线的地方为1,其余的地方为0.

转one-hot编码:

a=np.eye(3)[[1,2,0,1]]
#输出
 [[0. 1. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [0. 1. 0.]] 
np.identity(n,dtype=None)#这个只能创建方阵,也就是N=M
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值