1. Python列表索引批量删除.

一开始天真的一个一个用del函数删除如del list[id].然后发现删文件是按间隔来的(一个删除一个不动).后来想想就明白了,删除一个文件的同时list变短了1,索引却继续加1.这样就导致1+1=2.以间隔为2在做删除操作.这是个大坑啊啊!

根据索引批量删除元素的方法如下:

从原列表选取不在索引里的元素重新生成新的list:

files=[filenames[i] for i in range(len(filenames)) if (i not in lid)]

lid删除索引列表,filenames原列表,files重生成的列表.

参考:https://blog.csdn.net/u013893893/article/details/83149364

当然也可以(索引-已删除的个数)来作为del的删除索引,不过比较麻烦.可以作为一种思路具体就不写了.

2.字符串分割函数split。

其实分为str.split和re.split.前者适合于单个分割符的字符串分割,后者多个分割符也能分割。下面贴下我用到的实例:

分割符'[', ';', ']'三个分割符同时分割。

import re
import json
aa='[{"import re": "3573097","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/3573097/"};{"YourID": "4414007","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/4414007/"};]'
bb=re.split('\[|\;|\]',aa)
l = [item for item in filter(lambda x:x != '', bb)]
print(bb)
print(l)
print(l[0])
dict_conditions_insert = json.loads(l[0])
print(dict_conditions_insert)['', '{"import re": "3573097","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/3573097/"}', '{"YourID": "4414007","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/4414007/"}', '', '']
['{"import re": "3573097","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/3573097/"}', '{"YourID": "4414007","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/4414007/"}']
{"import re": "3573097","PATH": "E:/DcmData/xlc/windows/lung_nodule_raw/3573097/"} <class 'str'>
{'import re': '3573097', 'PATH': 'E:/DcmData/xlc/windows/lung_nodule_raw/3573097/'} <class 'dict'>

参考:https://blog.csdn.net/luke2834/article/details/54588231

3.random.shuffle和random.sample函数:

import random
lst = list(range(10))
slice = random.sample(lst, 10)
print('lstbefore:',lst)
print('slice:',slice)
random.shuffle(lst)
print('lstafter:',lst)lstbefore: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
slice: [4, 7, 2, 0, 8, 3, 6, 9, 1, 5]
lstafter: [3, 8, 5, 4, 2, 6, 9, 0, 7, 1]#洗牌
# for i in reversed(range(len(lst))):
#     j = random.randint(0, i)
#     lst[i], lst[j] = lst[j], lst[i]#记录位置
h = set()
while (len(h) < 10):h.add(random.randint(0, 20))

4.ps2019.11.7:Pytorch clamp函数理解:torch.clamp(input, min, max, out=None) → Tensor
将输入input张量每个元素的夹紧到区间 [min,max],并返回结果到一个新张量.操作如下:

      | min, if x_i < min
y_i = | x_i, if min <= x_i <= max| max, if x_i > max

如果输入是FloatTensor or DoubleTensor类型,则参数min max 必须为实数,否则须为整数。【译注:似乎并非如此,无关输入类型,min, max取整数、实数皆可。】

参数:

input (Tensor) – 输入张量
min (Number) – 限制范围下限
max (Number) – 限制范围上限
out (Tensor, optional) – 输出张量
参考:https://blog.csdn.net/happyday_d/article/details/84962393,具体例子如下

>>> a = torch.randn(4)
>>> a
-1.4511
-0.68120.3302
-1.7423[torch.FloatTensor of size 4]>>> torch.clamp(a, min=-0.5, max=0.5)
-0.5000
-0.50000.3302
-0.5000[torch.FloatTensor of size 4]
torch.clamp(input, *, min, out=None) → Tensor

python 近期用到的基础知识汇总(六)相关推荐

  1. python 近期用到的基础知识汇总(八)

    1.pytorch 的scatter()函数 scatter() 和 scatter_() 的作用是一样的,只不过 scatter() 不会直接修改原来的 Tensor,而 scatter_() 会. ...

  2. python 近期用到的基础知识汇总(五)

    1.pytorch中变量类型转换 将numpy矩阵转换为Tensor张量:sub_ts = torch.from_numpy(sub_img) #sub_img为numpy类型 将Tensor张量转化 ...

  3. python 近期用到的基础知识汇总(四)

    1.python中 return 的用法:return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个retur ...

  4. python 近期用到的基础知识汇总(三)

    1.python __len__(self)详解 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数.要让 len() 函数工作正常,类必须提供一个特殊方法__len__() ...

  5. python 近期用到的基础知识汇总(主要是skimage的相关矩阵变化函数)(二)

    1.skimage.segmentation.clear_border函数 clear_border(labels, buffer_size=0, bgval=0, in_place=False)主要 ...

  6. python 近期用到的基础知识汇总(主要是numpy和pytorch的相关矩阵变化函数)(一)

    ps两个库好多类似的函数傻傻分不清,总结下. 1.np.where where()的用法 首先强调一下,where()函数对于不同的输入,返回的只是不同的. 1当数组是一维数组时,返回的值是一维的索引 ...

  7. python 近期用到的基础知识汇总(七)

    1.os.path.split():按照路径将文件名和路径分割开. 例如 o='/media/HDD/nnUNet_raw/nnUNet_raw_data/Task009_Spleen/inferTs ...

  8. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  9. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

最新文章

  1. 未解决oracle错误12505、01034、27101
  2. ubuntu 编辑器中文乱码
  3. Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】
  4. oracle util_mail,在oracle 10g中发送电子邮件
  5. 打包 压缩 命令tar zip
  6. 机房收费管理系统 之 总结
  7. NoteBurner Spotify教程:在Mac上将 Spotify 音乐转换为 MP3 格式
  8. testbed常见问题及处理(1)
  9. 试图执行系统不支持的操作,问题
  10. voip 网络电话快速搭建
  11. win7计算机资源管理器卡住,简单几步解决win7资源管理器老是重启的问题
  12. 饥饿游戏2:星火燎原[The Hunger Games:Catching Fire]
  13. 【深度学习】保姆级教程:个人深度学习工作站配置指南
  14. 【沧海拾昧】微机原理:8086/8088中断系统
  15. 从方法到实践,银行如何搭建用户体验管理体系?
  16. 一张图解决为什么校外访问不了学校购买的中国知网
  17. Quarzt的学习以及系统配置自启动
  18. 一个故事,讲懂什么是区块链
  19. FLASH--W25QXX系列存储器
  20. css鼠标滑过图标显示_CSS和jQuery教程:苹果风格的花式图标滑出导航

热门文章

  1. 办公室健康小贴士(转)
  2. Android深入浅出系列之Android开发环境搭建—SDK(三)
  3. 一起谈.NET技术,.NET程序员必备参考图片
  4. BootStrap table 传递搜索参数
  5. for、while、do while 3种循环异同点
  6. 找出N个无序数中第K大的数
  7. 【Java】在eclipse中使用maven进行项目构建 入门篇
  8. Android java传递int类型数组给C
  9. IOPS和Throughput
  10. c#实现播放器的集中方式