看不懂的代码块积累_Python

001.训练样本中的enumerate

for i, (features, label) in enumerate(data_loader, 1):
		print(i)
		print(features)
		print(label)
# enumerate将可迭代对象打包,并返回可迭代元素的索引号。关键字的基本用法示例:
L = 'abcd'
for index, value in enumerate(L):
	print(index, value)
  • 解释:
  • 1) in enumerate(data_loader, 1),是指迭代的索引 i 从1开始赋值, in enumerate(data_loader)的索引是从默认的0开始;
  • 2)for i, (features, label) 是因为pytorch中的DataLoader返回的是一个tuple,需要用(features, label)两个变量分别接收,获得两个tensor; 如果用for i, train in … ,则train 接收的是一个包含两个tensor的tuple数据

002. pycharm中导出numpy矩阵

pd.DataFrame(np_index_matrix).to_csv("saved_index_matrix.csv")
  • 解释:
  • 1)原理上比较容易理解,numpy变量转成pandas的DataFrame格式,并导出成csv。
  • 2)pycharm 不像spyder那样可以直接复制出矩阵变量,这句话可以解决pycharm中复制变量的痛点!(以前像憨憨一样粘贴到excel中,利用粘贴分隔符解决,操作太麻烦)

003. 列表推导式 + 条件赋值 [ if else for in]

#生成一个由每个iris样本对应种类名组成的列表list 。class_name = ['setosa', 'setosa', 'setosa', 'setosa', ...]
class_name=[iris.target_names[0] if i==0.0 else iris.target_names[1] if i==1.0 else iris.target_names[2] for i in pd_iris['class']]
#第一步简化:
class_name=['A'  if i==0 else  'B' if i==1.0 else 'C' for i in  iris_target  ]
#提供一个辅助理解的简例
L = [1,2,3,4,5,6,7]
col_list = [i*i   if i %2==0  else i   for i in L]
  • 解释:
  • 1) 这句话可以理解为创建一个分段函数,包含列表推导式与条件表达式两部分
  • 2)列表推导式实现函数的映射关系, [i* i for i in L] ,建立一个列表L中元素L_i 到函数 L_i^2 的映射,实现函数的功能
  • 3)条件表达式实现函数分段功能,如c= b if a > b else a就是一个列表表达式。 例子中看不懂的这句话,本质是一个更复杂的嵌套条件表达式,首先删掉无用的iris信息,简化为'A' if i ==0 else 'B' if i==1.0 else 'C',更容易看出来就是一个分段映射关系。i =0时, y= 'A'; i= 1时,y='B'; i=2时, y= 'C'
  • 4)两者组合,实现了一个分段函数的映射关系。
  • 参考:https://blog.youkuaiyun.com/m0_46262756/article/details/105506254?depth_1-

004 pandas 保存excel文件

  • 待整理

https://blog.youkuaiyun.com/weixin_35757704/article/details/88180581

005 python 筛选数据【待整理】

plt.figure(figsize=(12, 8))
plt.scatter(X_vis[y == 0,0], X_vis[y == 0, 1], label="Class #0", alpha=0.5,  linewidth=0.15)
plt.scatter(X_vis[y == 1, 0], X_vis[y == 1, 1], label="Class #1", alpha=0.5,  linewidth=0.15)
plt.title('Original set')

解释:

  1. X, y 是两个numpy中的array数据,其中y是标签。常用 X[y==0]来筛选标签为0的数据,而 X[y==0, 0] 获得筛选标签为零的第0列数据,X[y==0, 1] 获得筛选标签为零的第一列数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值