大老师怎么才能做老师这么强啊,关于大数据的疑问

?保登智乃?的贴吧关于Python读取大数据文件(5.4GB纯文本数据,还有更大的13GB的纯文本数据) | Hello world!小组 | 果壳网 科技有意思
130041人加入此小组
最近在学习和研究分子模拟方面的课题,得到的数据结果太大了,动则几个GB的数据文本文件,记事本之类的是打不开了,可能也与读取数据时候占用的内存溢出有关?如此庞大的数据必然要编程来处理,看到很多人评价Python是最适合初学者,最容易上手的语言,于是开始学Python。下载了Python2.7.5版,正在摸索中。但是也有个疑问,那就是Python编写的脚本中 f = open(sys.'FILE_NAME','r') 是打开整个文件吗?或者说将整个文件都读入内存? 还是可以实现只读取某一部分,比如1 ~ 387行的数据?处理完以上这些行的数据后,释放内存;再读取388 ~ 774 行进行数据处理,释放内存;然后再读取 775 ~1161 行进行数据处理,释放内存;... 以此类推。可以实现这个功能吗? 初学者,求赐教,谢谢!==============先说说结果文件里的数据吧。由于文件太大(5.4G的文本),写字板之类的软件根本打不开,但是知道文件的大概格式如下:385 # 体系的总原子数i=0 t=0.000 E=某值 # i 是计算步数,0~232041步;t是时间点,间隔是0.5 fs; E是该时刻此系统的能量值。O X Y Z # 氧原子的直角坐标值H X Y Z # 氢原子的直角坐标值H X Y Z # 氢原子的直角坐标值O X Y Z # 格式如此重复,但数值不同H X Y ZH X Y ZO X Y ZH X Y ZH X Y Z. . . . . . . ..# 一个时间间隔内如此反复出现385次,然后是下一个时间间隔的数据,385i = 1 t = 0.500 E = 某值 O X Y Z # 氧原子的直角坐标值H X Y Z # 氢原子的直角坐标值H X Y Z # 氢原子的直角坐标值O X Y Z # 格式如此重复,但坐标数值不同H X Y Z. . . . . . . .. . . .# 整个文件如此反复,共出现232042次我现在做的是第一步,首先从这些水分子中找到哪些质子发生了转移。基本的想法是,以水分子中的氧原子作为基准,先在每个时间间隔内判断哪些氧原子周围有三个氢原子,锁定这样的 H3O+,然后再比较这个H3O+ 在下一个时间间隔内,哪一个氢原子在前一个时间间隔内与氧原子之间的距离发生了变化,由此判断这个氢原子可能发生了质子转移。基本算法流程大概如下:(1)读取文件中的各个原子的序号和 X, Y, Z 坐标值(2)分析判断第 k 个氧原子周围1.2 A的范围内有没有3个H原子。如果有,记录下它们的行号和X,Y,Z坐标值 (2.1) dist_k = sqrt((x_i - x_J)**2 + (y_i - y_J)**2 + (z_i - z_J)**2) 判断是否 &= 1.2 【注,Python里用 **2 表示平方计算】 这里x_i, y_i, z_i 是氧原子的坐标, x_J, y_J, z_J 是氢原子的坐标
if dist &= 1.2 变量coord_k 记录符合条件的氢原子序号和 x_J, y_J, z_J
变量 num 记录符合条件的氢原子个数 else 寻找第 k+1 个 氧原子周围1.2 A的范围内有没有3个H原子。 如此循环。 (2.2)判断第k个氧原子周围1.2 A的范围内 num 是否=3,如果&3,则不记录 coord_k 值; 如果 num =3,则记录 coord_k 的值。然后写入一个新文件表格table_coord 中保存。【完成第(2)步后,需要释放内存,将未保存的数据从内存中清除】(3)【由于文件中每一个时间间隔里,原子的序号是固定的】只需要关注并读取下一个时间间隔中与刚才保存的氢原子序号相同的氢原子x_J, y_J, z_J的坐标,并与刚才保存的坐标进行对比,判断两组坐标是否相同。 if x_J == x_J+1 and y_J == y_J+1 and z_J == z_J+1,说明没有发生质子转移, 用新坐标覆盖老坐标 coord_k = coord_k+1,重复步骤(1) 至(3) else 说明发生了质子转移,保存这个氢原子的序号和新坐标值 (但是不覆盖原来的序号和坐标值),保存到(2.2)步的文件表格table_coord中。【再次释放内存,读取下一个时间间隔的数据,并重复步骤(1)至(3)。可能真的要重复步骤(1)至(3),而不是只关注原来的 H3O+, 理由如下面的问题讨论。】现在有这样几个问题:&1& 由于文件太大(5.4G的文本),写字板之类的软件根本打不开,或者说是读取文件的内存不足? 我担心用Python编程来读取数据估计也会遇到同样的问题。也就是说可能无法直接读取全部数据。 Python中,f = open(sys.'FILE_NAME','r') 能否只打开并读取一块区域的数值,比如1~387行数据?处理完以上这些行的数据后,释放内存;再读取388 ~ 774 行进行数据处理,释放内存;然后再读取 775 ~1161 行进行数据处理,释放内存;... 以此类推。 如果可以,应该怎么coding?&2& 在第(2)步里可能还涉及到另一个问题,那就是如何释放内存,因为第(2)步里读取了很多数据,并进行了一些循环计算。这些步骤结束后,内存里的无用数据应该可以删去了。&3& 我重新考虑了一下,重复(1)至(3)是为了避免遗漏在某个时间间隔点有新的 H3O+ 出现,比如某个氢原子从某个水分子转移到另一个水分子的过程中,H3O+ 变成了 H2O,而质子转移后,原来的H2O 变成了新的 H3O+,这里还是需要进行 dist_k 的计算。也许步骤(3)需要重新优化一下】&4& 另外,第(3)步骤中,if 条件里,坐标值的比较也许需要一个阈值,因为原子可能被体系中微小的能量扰动所干扰,即使没有质子转移,坐标也可能会发生变化,但是这个变化量应该比质子转移的变化量小。以上是我想到的程序处理数据的流程,还有不足之处,请大家多多提出宝贵意见。
+ 加入我的果篮
记得readline可以按行读取进来。
引用 的话:记得readline可以按行读取进来。那打开文件是整个都打开吗? 会出现文件太大造成内存溢出的状况吗?
引用 的话:那打开文件是整个都打开吗? 会出现文件太大造成内存溢出的状况吗?read()才是整个文件读入。这些都是初级入门的资料里的内容。看看自己写代码看结果就知道了。
引用 的话:read()才是整个文件读入。这些都是初级入门的资料里的内容。看看自己写代码看结果就知道了。我看的是
里面写的是: f.readline() reads a single line from the file只能读一行?
trajectory文件吧?为什么不用分子模拟软件自带的工具处理呢?比如AmberTools之类。如果只是要提取关键信息的话直接先grep看看先?
我记得read是把所有数据读成一个字符串,readline是读一行,readlines是把所有行读成一个列表,xreadlines是假装读取所有行 ,但当你用到时才把数据从硬盘里读出来
楼主你的情况可以用一个循环和readline一行一行读出来(每次readline都是读取上次读过的行的下一行),或者用for line in f.xreadline:这种形式每次读一行(第二种方法又等价于for line in open(filename)),其实吧,我觉得你应该把所用数据读进一个数据库里,这样想怎么取就怎么取啦嘛,还比读文本快得多
引用 的话:我记得read是把所有数据读成一个字符串,readline是读一行,readlines是把所有行读成一个列表,xreadlines是假装读取所有行 ,但当你用到时才把数据从硬盘里读出来谢谢你的回答
引用 的话:trajectory文件吧?为什么不用分子模拟软件自带的工具处理呢?比如AmberTools之类。如果只是要提取关键信息的话直接先grep看看先?是trajectory文件,我现在学的是 ab initio molecular dynamics simulation,研究对象是水分子中的质子转移过程,得到的结果文件是 .xyz 格式的。纯新手,各种工具都不熟悉…… 目前看trajectory的结果用的是 VMD
果壳网系统工程师,维基百科志愿者
如果知道偏移(offset)和长度(limit, size)的话,可以在open文件后用fp.seek(offset[, whence])来定位偏移。fp.read([size])可以给出可选参数size来指定读取字节的长度。如果不知道偏移和长度的话,fp.readlines([size])也不是一个好方法。readlines()同样会把所有行都载入内存,而xreadlines()却会产生一个迭代器,通过惰性方式来读取。但是,从python2.3开始,xreadlines()作为一项方法已经被废弃(deprecated),转而推荐使用更加pythonic的写法:for line in fp:
do_something_with(line)
for line in fp的方式是和xreadlines完全等效的。此外,对于初学者而言,打开大量文件不关闭文件句柄是一个常见的毛病。这在写小程序时没啥问题,但一旦程序变大、功能加强后,可能就会出现资源不够用的情况。所以,一般推荐用with context来打开文件:from __future__ import with_statement
with open('/path/to/file', 'rb') as fp:
for line in fp:
do_something_with(line)
引用 的话:是trajectory文件,我现在学的是 ab initio molecular dynamics simulation,研究对象是水分子中的质子转移过程,得到的结果文件是 .xyz 格式的。纯新手...CPMD做的模拟?VMD很好用的啊,VMD有python接口,但是我这里从来不work。VMD不需要开opengl显示可以直接当成tcl/tk解释器,用来strip一些溶剂分子什么的很方便的啊。VMD就是专门分析轨迹的,既然已经上了这大杀器,直接调用它已有的功能多方便哈。xyz文件定义也很简单,要手工处理的话,我以前直接用split命令逐帧拆分,对每一个文件用grep,sed什么的直接处理一下再&&到一个文本文件就好了。split命令还挺快,拆分成小文件之后就不存在读取大文件的问题了。当然我以前这么干的时候没到几个G……要是几个G的话估计得用ramdisk才能避免I/O瓶颈?
用不着python这么复杂的东西吧!用bash 提供一些思路:数据处理程序在processfile.sh中 ,调用方法 ./processfile.sh processed_filenamehead -n 770 filename | tail -n385& file_a #head 先取文件前1-770行,通过管道给 tail尾部取1-770的 (770-386+1) 行 放入文件file_a中./processfile.sh file_a #处理file_ahead -n 1155 filename | tail -n 385 & file_a./processfile.sh file_a
引用 的话:CPMD做的模拟?VMD很好用的啊,VMD有python接口,但是我这里从来不work。VMD不需要开opengl显示可以直接当成tcl/tk解释器,用来strip一些溶剂分子什么的很方便的啊。VM...类似于CPMD吧,用的是 CP2K/QuickStep。我的VMD也没法接入Python,按照Toturial 里操作不成功……汗现在我把整个全部都整理出来放在原帖下了。手工处理是不行的,太多数据了。
引用 的话:果知道偏移(offset)和长度(limit, size)的话,可以在open文件后用fp.seek(offset[, whence])来定位偏移。fp.read([size])可以给出可选参数si...多谢指点!请问偏移量 (offset) 是指什么东西的偏移量? 行数? 数据长度?长度 (limit, size) 又是指什么东西的长度? 文件长度? 行数?
引用 的话:不着python这么复杂的东西吧!用bash 提供一些思路:数据处理程序在processfile.sh中 ,调用方法 ./processfile.sh processed_filenameh...bash 是另一种编程软件吗?
引用 的话:bash 是另一种编程软件吗?类unix 系统(各种BSD ,各种linux,各种unix),都有一个程序叫做shell(有各种shell, csh/bash/sh/tsh等),用在用户和系统之间提供交互,一般在/etc/passwd中指定用户shell的种类,bash是大多linux默认的shell,因为比较简单而适合批处理,可以作一些 for/if/test 等判定head 和tail是 coreutils 包的一个程序.早期的系统(没有python 的时候) ,人们一般用shell 作系统管理和c/fortran/pascal/LISP/汇编,等语言编程.个人观点,shell比python简单好学,功能弱很多,但很适合这种batch process 的任务,稳定性比python好很多.上例中./processfile.sh file_a #处理file_a也可是./processfile.py file_a #处理file_a也可是(processfile是c/fortran等语言编译出的应用程序)./processfile file_a #处理file_a
补充一下 ,windows 下也可用gnuwin32 使用bash,缺点是IO慢.
果壳网系统工程师,维基百科志愿者
引用 的话:多谢指点!请问偏移量 (offset) 是指什么东西的偏移量? 行数? 数据长度?长度 (limit, size) 又是指什么东西的长度? 文件长度? 行数?单位都是字节,byte。
385 # 体系的总原子数i=0 t=0.000 E=某值 # i 是计算步数,0~232041步;t是时间点,间隔是0.5 fs; E是该时刻此系统的能量值。这部分都是注释吗为什么不考虑使用数据库?
这个有点意思,能不能楼主扔我个3个时间片段的txt,我来看看有什么优化做法
在分子模拟软件公司做过几年, 看到这数据还蛮亲切的.
没有那种编程语言会傻逼到读入整个文件....
引用 的话:这个有点意思,能不能楼主扔我个3个时间片段的txt,我来看看有什么优化做法打不开,怎么扔给你……
引用 的话:打不开,怎么扔给你……有一种软件叫做ultraedit
引用 的话:有一种软件叫做ultraedit我当然用Ultraedit 试过,同样打不开啊…… 太大了
引用 的话:85 # 体系的总原子数i=0 t=0.000 E=某值 # i 是计算步数,0~232041步;t是时间点,间隔是0.5 fs; E是该时刻此系统的能量值。这部分都是注释吗为什么不考虑使用数...那是我自己加的注释不要再推荐我用别的什么软件了,越推荐越多,更糊涂了
引用 的话:那是我自己加的注释不要再推荐我用别的什么软件了,越推荐越多,更糊涂了大数据文本处理确实比较麻烦 想办法导入数据库吧。。。
引用 的话:我当然用Ultraedit 试过,同样打不开啊…… 太大了那是你开发用的机器内存不够大。既然这样,你把你的4G的文件上传一个到云盘,我来download或者你做几个假数据,弄个2个迭代给我
引用 的话:那是你开发用的机器内存不够大。既然这样,你把你的4G的文件上传一个到云盘,我来download或者你做几个假数据,弄个2个迭代给我你好,非常感谢你的回复!我重新跑了一下程序,然后在中途kill掉进程,得到一段前10步的结果文件。已经站内信给你下载链接了。再次感谢!
Perl下有Tie可以把文件当作内存进行操作(当然,不要真的当作内存),这样就不存在大文件读写(至少是读)的难题了
引用 的话:你好,非常感谢你的回复!我重新跑了一下程序,然后在中途kill掉进程,得到一段前10步的结果文件。已经站内信给你下载链接了。再次感谢!您的访问出错了 |
很抱歉,您要访问的页面不存在!
引用 的话:|引用 的话:|我晕,百度怎么搞的……要不你私信给我一个邮箱,我发给你吧,文件不大,几百K,谢谢!
智能科学专业
引用 的话:那是你开发用的机器内存不够大。既然这样,你把你的4G的文件上传一个到云盘,我来download或者你做几个假数据,弄个2个迭代给我方法不对嫌机器内存不够大么。。。。
你可以考虑用for line in fp:
do_something_with(line)先把文件拆分成小文件读取。
典型的数据处理需求。记事本之类的都是全内存操作的,自然内存不足,而且记事本本身可能有文件大小上限。用C/C++可以获得高处理速度。
游戏程序员
几G的文本,wow,我见到一定以为是电影改了后缀名。其实就是内存映射 mmap,搜了一下,好像 python 这样是没问题的with open('/path/to/file', 'rb') as fp:
for line in fp:
do_something_with(line)由于逻辑没看动(囧),所以大概回答下按照 1~387388 ~ 774 这样处理,可以这样with open('/path/to/file', 'rb') as fp:
block = []
for line in fp:
block.append(line)
if len(block) == 387:
do_block(block)
del block[:]
# release memory当然,这样处理完后,一个 block 就没了,如果你需要联合处理多个 block。可以在 do_block 之前,先把当前的 block 写到一个文件, 总共 232041个文件,命名 0.xxx, 1.xxx, ..., 232041.xxx,这样你计算需要别的 block 时,直接在 do_block 里面打开文件读取,然后关闭就可以了。232041个文件在一个文件夹,打开估计也问题,可以在里面弄些文件夹,比如 建立 0 1 2 ... 386 个文件夹, 每个文件名数字部分简单 mod 387 就可以确定该文件在那个文件夹了。当然,为了方便人阅读,也可以 0-1-20001 这样
游戏程序员
补充下,这么大的数据,肯定很慢,所以记得加 print,告诉自己处理到那了,然后就能估算下时间了另外,虽然数据很大,程序又只是读取,最好还是备份下!
加print 巨影响速度,打印多了容易造成假死。
lz,我对不起你,我忘记你的事情了,麻烦再私信我发一下,给个百度云盘的地址如何
引用 的话:lz,我对不起你,我忘记你的事情了,麻烦再私信我发一下,给个百度云盘的地址如何-_______-!请查看你的 126 邮箱另外,这个问题早就解决了,但是如果你还感兴趣的话,请直接看下个问题吧……
c吧,对于这种文件还是用cpython 效率大概是C的1/20吧,自己的感觉python做一下demo还是不错的,但总是要用的计算量大的程序还是用c,至少核心部分用c,编译成dll然后用ctype调用dll
可以使用分而治之的方法,把文件切小了seek()和readlines()配合
.net/网络工程师,电子商务师
个人建议,把文本内容导入数据库再来操作。
引用 的话:楼主你的情况可以用一个循环和readline一行一行读出来(每次readline都是读取上次读过的行的下一行),或者用for line in f.xreadline:这种形式每次读一行(第二种方法...我也认为放入数据库才能更好的操作
去这里发帖问。要强调GB级别文本处理。可以说下做什么的。千万别开口要python代码,就说你用python写过,不好用。大约2小时后,准备一台linux测出速度最快的答案。这两个小时内你学习下bash和awk,今后文本处理用得着。
引用 的话:去这里发帖问。要强调GB级别文本处理。可以说下做什么的。千万别开口要python代码,就说你用python写过,不好用。 早就用 Python 解决了,您来得太晚
引用 的话: 早就用 Python 解决了,您来得太晚文本处理,不会awk怎么行。
软件工程师,网路安全从业者
我就想吐槽下,楼下某些回帖不像搞技术的,倒像是路边推销安利的。
文本文件不适合随机读取。比如要读第65535行,就一定要先读取前面的65534行后,才能知道第65535行在哪里。建议使用自定义的二进制格式存储数据,这样就能直接算出要读取的记录在哪里。如果文本文件是自己生成的话,那就修改一下生成的程序;如果自己不能控制原始数据输出的格式,可以先写一个转换程序,先把文本文件转成自定义的二进制文件。
引用 的话:我就想吐槽下,楼下某些回帖不像搞技术的,倒像是路边推销安利的。怎么走到哪里都能看见你说别人卖安利。。。。。
(C)2017果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:张佳玮|谢谢老师!你的大数据让我了解“科比詹姆斯谁更强”(组图)_网易新闻
张佳玮|谢谢老师!你的大数据让我了解“科比詹姆斯谁更强”(组图)
用微信扫码二维码
分享至好友和朋友圈
  编者按
  如今当我们谈起NBA,某某球员的数据总是挂在嘴边,但你知道NBA的数据统计是如此兴起的吗?它又经历了怎样的变革?
  在大数据时代,约翰·霍林格老师创立的统计系统也许将轻松解答球迷间的争议。科比和詹姆斯谁强?看看这些精确到分毫的数据吧。
  在社交网络时代,想精准说明一件事,只需要足够多的数据而已。
  数据时代,整整走了40年
  日,纽约尼克斯作客多伦多壮汉队,68比66取胜。这是一切的起点:NBA就此开始(那时候还叫做BAA)。
  那个赛季,没人统计篮板球,没人统计抢断,盖帽、失误更是无从说起。列入统计的只有以下数据:
  投篮出手;投篮命中;罚球出手,罚球命中;助攻;犯规。就在那场著名的开天辟地创世战里,你只看得到一份手写的模糊的数据单:
  半场37比29,全场68比66,纽约全场犯规20次,多伦多16次。全场得分首席是多伦多的诺斯特兰德,18分。
  季,一个伟大的变化出现了:篮板球开始被统计了。当然,那时节NBA依然没有电脑数据库,所以统计全靠手写+收集。
  季,张伯伦刚退役,NBA就开始统计盖帽数据。于是,拉塞尔和张伯伦那些“单场25次盖帽”、“职业生涯每场都有10次盖帽”,只剩下传说了。
  同一年,NBA开始统计抢断,杰里·韦斯特在他35岁那年留下了场均2.6抢断,也让人不得不考虑“如果从1960年就开始统计抢断,韦斯特会留下什么样的霸业?”
  季,NBA开始统计失误数;80年代,三分球加入之后,数据统计基本成了型。
  季开始,NBA每场比赛都有了完备的、准确的个人技术统计框,所以很长一段时间里,新闻都爱用这字眼:
  “自从赛季有统计以来,这是第N个球员单场打出以下数据……”自那以来,NBA的统计正式进入了现代。你可以从www.nba.com、www.basketball-reference.com等地方,随意找到历史数据。
  詹姆斯在一场比赛中的具体数据。
  球迷的困惑数据能解答吗?
  与此同时,因为数据的完备,一切都改变了。
  20世纪80年代中期,随着电视转播的兴盛,媒体对NBA的渗透也日益加重,大量的数据引用成了媒体的新爱好。
  于是,“得分能手”、“强悍的防守者”、“快手”、“投篮大师”这些词汇,逐渐被“每场能得多少分”、“能完成多少个篮板+封盖”、“能完成多少次抢断”等话题覆盖了。
  如是,自上而下,NBA都开始喜欢数据了。
  但对大多数球迷来说,他们面临这么个问题:他们没法看每场比赛,只好靠数据来分辨,于是有了以下问题:
  后人看数据,会很难理解:年轻时的斯蒂芬·马布里,一个年年场均8助攻以上的人,怎么会被叫做独狼?
  后人看数据,会难以想像,布鲁斯·鲍文这个平淡无奇,抢断毫不华丽的家伙,防守却远比两届抢断王“魔术师”强大?
  后人又怎么能想像,斯塔德迈尔职业生涯场均1.4次盖帽8.8个篮板和加内特差不多,但KG的防守和斯塔德迈尔,那就是水泥和泥水之别?
  约翰·霍林格创立了球员效率水准统计。
  数据告诉你“科比和詹姆斯谁强”
  轮到我们的主角登场了:约翰·霍林格老师。
  如今已上任灰熊篮球事务主管的霍林格老师,过去十六年一直在致力于篮球数据发掘。他手创了PER制度——即Player Efficiency Rating(球员效率水准),来统计一个球员的综合效率。
  虽然这个指标常被批评缺少防守、太过于偏爱投篮好的球员,但比起NBA原先推行过的EFF制度——简单粗暴的得分+篮板+助攻+盖帽+抢断-犯规-失误的算法,要靠谱得多。
  随着霍林格先生在ESPN长期从事专栏写作和篮球研究的工作,数据热在网络上如火如荼。hoopdata网站更进一步,开始提供每个球员的投篮细节、传球去向等等。
  那么这有什么用呢?举个最“口水”的例子吧,科比和詹姆斯谁强?
  当我们打开投篮分布表,能够发现赛季詹姆斯每场在篮圈附近的命中率达到73%,但是在3-9英尺的近距离只有54%;10到15英尺的中距离投篮为32%;16到23英尺的长距离中投为40%。
  科比在篮筐周围的命中率只有59%,但在3到9英尺的近距离是46%;10到15英尺的中近距离投篮为50%。所以可以说科比的中投比勒布朗更出色、投篮范围更大——至少在季是如此。
  数据的确不会说谎。但要精准说明一件事,需要足够多的数据而已。  比赛后的热点图。
  今后的数据,精确到分毫
  21世纪,细节化数据越来越多的被融入球队管理。
  比如,火箭的经理达雷尔·莫雷就是个数据狂,他有一套自己独立的数据体系来判断球员好坏,也就是这套体系,会把看似数据不出色的巴蒂尔描述成一个出色的团队球员。
  比球迷和经理更痴迷数据的,是遍布美国、给天才们塞名片的球探们。他们需要更多更完备的数据,以便更好的评估一个球员。
  终于,Synergy Sports出现了。这机构早在1998年由凤凰城太阳前教练加里克·巴尔创立,如今已经扩展到NBA30支球队都使用其产品,来对球员进行细节描述。这可能是最细致但也最琐碎的球员数据评估机构了。
  比如到了2022年,你可能将听到:
  凯文·杜兰特本场上场42分钟25秒,具体分布为,第一节开场至结尾,第二节余9分1秒时上场至半场结束,第三节开场至结尾,第四节余9分34秒时上场至第四节结束。
  合计出手21次,为队友做掩护合计18次,包括6次原地对球掩护、8次无球掩护、4次假掩护……其中挡人有效7次,无效10次,犯规1次……
  篮板球7个,其中前场篮板球2个,起跳抓到6个,其中2个前场篮板都是起跳后抓到;
  合计拍球102下,其中运球过腰77下,运球在腰下25下,运球在膝高度8下……
  合计跑动距离为XXX米,其中踱步距离为XXX米,半速跑动距离为XXX米,全速跑动距离为XXX米。加速弧线跑距离为……
  到时候,你点开一个篮球论坛,将听到的不再是“我不喜欢约翰·沃尔的原因是,他的投篮技巧还不过关,他的对球防守也还太倾向赌博”。而将是大堆的数据:
  “沃尔上一场的投篮选择如下:运球一步后投篮6次,未摆脱中投5次,其中4次在23英尺之外。而在他防守时,为了断球不惜4次让身体倾斜重心超过30度,他的防守前步与对手肩膀平行线之间的距离有6次超过警戒线……”(来源:运动家)
本文来源:澎湃新闻网
责任编辑:王晓易_NE0011
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈(图一)转自:天善大数据(群众号ID:tianshanbigdata)主持人:本次微信直播谈论内容1.数据场2.数据职位(开发有关、报表剖析、算法与开掘、生态与周边)本期嘉宾介绍云戒云戒说技术:Linux、Python、大数据、Hadoop、Spark、数据剖析、数据开掘、机器学习、深度学习、安全、Mac、Emacs;&云戒说日子:作业、日子、人生、佛法、易学、创业。天善智能社区博客专栏 &https://ask.hellobi.com/blog/oyea9le(图二)主持人:咱们好,我是微信直播活动的主持人咖啡,每周一个主题,一场跟数据有关的作业、东西、技术的沟通盛宴。咱们的标语是“Friday BI Fly& 周五BI飞起来”。看来能够跟嘉宾聊的论题有许多,不过由于咱们是专心于数据方面的同享,老师今日仅就跟数据有关的技术,职位等进行同享,别的方面有需求跟嘉宾沟通的能够暗里谈论。有请嘉宾进行下面的同享,有请!大数据职位、数据场技术(图三)hello, 咱们好,今日同享大数据职位与技术有关的论题。1数据场与数据极客说起“大数据”一词,也是实在被炒够了。做个简略的核算也叫大数据,做个表格、画个图形出来,就叫大数据了。言谈间但凡欠好“大数据”沾边,就感触现已掉队了。正本,许多人除了知道简略的核算外,底子不了解大数据是啥。乃至连Hadoop与Spark都不曾听过,更别谈机器学习与深度学习了。大数据是一个概念也是一门技术,是在以Hadoop为代表的大数据路径结构前进行的各种数据剖析的技术。包含了根底的大数据结构,以Hadoop和Spark为代表;还包含了实时数据处理、离线数据处理;还包含了数据剖析,数据开掘,和用机器学习算法进行猜测剖析。概念吵着吵着就变味了,用“大数据”来代表许大都据处理范畴的技术,现已不太合理了。如今比照合适的一个词是数据科学(Data Science),做数据科学的叫数据科学家。当然实在到科学家这个等级,恳求是十分高的,数据科学家是具稀有据有关的完好理论和常识的人,天然境地很高。数据是金矿,数据科学天然是如今的金矿作业,做数据的人就算矿工。一个通常的数据矿工,变成数据科学家需求绵长的进程。那这个……,做不到数据科学家,咱们还能够做个数据极客(Data Geek)嘛,应战数据极限,也是应战自个的极限。或许小时分的期望即是当科学家,如今总算不必上博士就能够完结了。尽管许多都只是自个团队或许公司封的职位。接下来,能够看看,在数据范畴,大约都有哪些职位,以及都需求啥样的技术。2数据职位如今,现已有许多的公司依靠于数据,以数据作为基地的事务驱动。能够说,没稀有据及数据开掘才干,这些公司将无法作业。以八卦中的坤卦来代表数据处理悉数流程,能够概括为数据六爻:获取,处理,存储,剖析,表现,运用。底子上干流以数据驱动的公司都是在运用这六爻中的一种或许多种技术。经过各种路径获取数据,将数据进行清洁或许结构化处理,存储入数据库或许大数据集群,进而运用多维剖析乃至机器学习,终究将作用展示给群众,或许直接运用于商品效劳于群众。大致了解了上面这六爻的数据流程,关于各种数据的职位也差不多有必定的了解了。有喜欢的能够渐渐去拉勾网查找一下“数据”这个词,底子上和数据有关的职位能够分以下几类:路径开发:与数据有关的开发,数据工程师,Hadoop路径二次开发,爬虫开发事务开掘:算法开掘,机器学习与深度学习,图画辨认、视频处理数据处理:ETL开发,数据清洁商业智能(BI):商业决议方案,数据剖析,数据剖析(根底核算),运营数据剖析(运营司理),商品数据剖析(商品司理)数据展示:运营报表,趋势图谱,WEB展示特性引荐:用户画像,有关开掘天然言语处理(NLP):文本剖析,主题模型2.1 开发有关首要稀有据抓取,也即通常说的网络爬虫。需求思考数据抓取的实时性与完好性,还稀有据及时更新,数据去重等等。严厉来说,和通常意义上的大数据有关性不大,首要是后端开发的一系列技术,其间也会触及散布式的一些技术。ETL开发,ETL为Extract、Transform和Load的缩写,即数据抽取,变换与装载。将各种来历的数据进行搜集、标准和存储起来。能够是离线的办法,存储在以Hadoop为代表的大数据集群中。也能够是实时的展示在报表体系中。假如是实时的,也叫实时数据流开发,通常和Storm结构或许Spark Streaming技术有关。(本篇标题为:,假如刚看到这条音讯,阐明你很走运,这是小可正在写的书中的一篇文章。)Hadoop路径开发,专指以大数据结构为根底,并在此根底前进行二次开发或许数据流开发。对数据路径做开发与改善,只能是程序员的作业了,根据事务需求,对现有的路径进行改善与优化。由所以路径有关的,通常需求Java与Scala的专业程序员,这块和数据剖析底子没有太大联络。别的还有纯前端的数据可视化技术开发,或许纯运维的大数据集群处理等等。自个正在写一本书,内容跟今日同享的主题有关:2.2 事务剖析商业智能剖析,包含报表剖析,运营或许出售剖析,这一块以Excell、SPSS和R为代表。首要是指对关于具体事务,对现有的数据进行核算剖析,等候从中发现一些规矩与趋势。数据剖析报表,也是最常用的数据剖析师职位的一些作业,通常产出以报表为主。这块许多时分会与运营有些的需求有关,技术上首要以老练的东西为主。当数据量一大,就会触及在集群环境下的剖析,剖析师通常很了解SQL,这也是构建于Hadoop之上的Hive能被群众了解的要素。除了报表核算外,还需求对数据的有很强的解读才干,能剖析宽和读出一些景象发作的要素,一同需求关于这些疑问,提出一些或许的应对方案,以便对事务战略或许商业方向上有更多的教导。一些专业范畴剖析,如网络安全剖析,金融范畴剖析。这些范畴的剖析,通常需求用范畴常识,深化景象背面去开掘动身作的要素,不只需具有很强的剖析才干,也需求很强的范畴常识。题外话太极,其大无外,其小无内。简略说即是:大到没有外部,小到没有内部。从桌面电脑年代,向大处走,即是向云中走,走出了大数据;向小处走,即是向终端走,走出了移动互联网。一阴一阳之谓道,阴阳合而万物生,大数据与移动端相联,并是万物互联(Internet of Everything),也即物联网。大到没有鸿沟,才是大数据。2.3 算法开掘做为数据科学中的重头戏,即是数据开掘和机器学习了。在线电商中的特性引荐技术,商业与银行中的欺诈检查,智能手机中语音辨认(Siri),机器翻译,图画辨认等等。触及许多机器学习算法,包含分类、聚类和特性引荐等常用数据开掘技术。也包含数据剖析的许多根底,和数据剖析偏重的报表产出并不相同,并不着重产出许多的报表,通常是在现稀有据根底上的产出新数据,用于效劳事务体系。还能够推行到人工智能,其间触及许多的数据处理与开掘技术。比方机器人,无人驾驶,总归是尽量的在某些范畴抵达或许逾越人类。人类能处理如下内容:Number: 数据(数)NLP: 天然言语处理(文字)Pic: 图画处理(图画)Voice: 语音辨认(语音)Video: 视频处理(视频)特性引荐: (团体才智与交际化)其间会用到许多的机器学习算法,包含深度学习,然后抵达效劳人类的意图。3七大技术那么,变成数据极客,树立自个的数据场需求哪些技术呢?且不说那深邃杂乱的理论,仅从有用的视点来剖析一下,树立数据场的七个方面。关于数据的核算、剖析与开掘,这些概念的侧要害不相同。数据核算,运用核算学的常识,产出数据和报表;数据剖析,除了产出数据和报表外,还需求剖析其间要素,最佳能找出对应的战略;数据开掘,需求在数据剖析的根底上,发现新的,有价值的常识及潜在的规矩。假如只是对原有的数据进行核算剖析,而没有对不知道的事物进行猜测,是不算数据开掘。(了解一个算法或许一种运用是如何做的,只是一种具体的法,今日更多的是讲道)数据有关的职位各式各样,咱们要构建数据场时,抽取其间的各种技术出来,构成自个的技术表。近来读到一篇文章:英文原文地址:http://bigdata-madesimple.com/7-key-skills-required-for-machine-learning-jobs/中文翻译地址:http://www.36dsj.com/archives/29515?utm_source=tuicool&utm_medium=referral文章描绘了机器学习需求的七个技术,以及需求这些技术的要素,首要技术如下:1. 编程言语(Python/C++/R/Java);2. 概率与核算;3. 运用数学与算法;4. 散布式核算;5. Unix/Linux东西集;6. 高档信号处理技术(特征获取);7. 许多阅览,习气灵敏改动,更新自个。在这篇文章的根底上,我总结了以下七个方面,用于构建咱们自个的数据场技术:SQL与NoSQL技术Linux东西集Python或许R言语生态Hadoop与Spark生态概率、核算与线性代数机器学习与深度学习事务及杂项3.1 SQL与NoSQL技术传统的SQL东西与大数据环境下的NoSQL东西中,以联络型的MySQL为代表,以文档型的MongoDB为代表,以大数据环境下的Hive代表。这都是数据剖析的根底而强壮利器,在许多场合下都能灵敏的处理疑问。拓宽的,还会有内存型数据库Redis,图数据库Neo4j,还有全文索引的ElasticSearch和Solr,还有Hbase和Cassandra,这些根据具体的事务,挑选性的把握其间一有些。学到啥程度并无定论,要害在具体的数据环境下,不至于持久只知道MySQL这一个东西,在不相同的场景,其它的数据库能表现出强壮的优势。总结起来说,要害不是东西,而是数据。不只需能处理结构化数据,还要处理半结构化数据,不只能单机处理,还要在集群环境下处理。3.2 Linux东西集Shell, AWK, sed, grep等底子东西集,这是许大都据简略处理的得力助手,包含数据文件编码,数据兼并,数据拆分,数据标准,格局验证等等。Linux脚本才干,简略效劳装备才干,正则表达式才干,Vim或许Emacs修正才干,文件体系常用操作指令,长途登录ssh等等,这些都能灵敏的处理许多疑问。任何的剖析或开掘都会依托与一个别系,而Linux是其间最常用的,格外是在效劳器环境。了解一个别系,能让自个的数据科学作业事半功倍。简略的数据搜集与处理,许多时分也会依靠于Linux体系或许根据其上的一系列东西,比方常用的Web效劳器引擎Nginx及其发作的日志,常用的文件传输scp或许rsync,常用的守时使命crontab等等这些东西,安稳又有用。3.3 Python或许R言语生态把握一门剖析专用言语,很有必要。其间以R言语和Python言语为代表。R起源于核算学,如今在数据科学范畴也占有强壮的阵地。Python更是一门完好的编程言语,不论是Web开发、主动化运维、云核算,仍是数据科学范畴,都有许多的用户。两者在数据剖析中都有完好的生态圈,并且其它环境对这两者的支撑也是十分好的。无意于争端,全看自个喜欢。自个只了解Python这块生态,因而只谈论这一块有关的。最为群众了解的一些包为:Numpy,Scipy, Pandas和Scikit-learn,Keras,处理了从数据剖析到机器学习和深度学习的简直悉数使命。3.4 Hadoop与Spark生态大数据路径,无疑是以Hadoop和Spark为代表,不管在线处理仍是离线剖析。Hadoop比照合适离线处理。而在线处理中,Storm即是比照有名的。假如需求自个完结Map-Reduce或许对接数据之类的开发,编程言语中以Java和Scala为代表。在线查找有关,估量会用前面说过的ElasticSearch或许Solr。当然,区别于hadoop的Map-Reduce流程,Spark供应的弹性数据集RDD,能作用于RDD上的算子十分多,使得数据处理与剖析愈加便当。除此以外,Spark还供应了实时使命的Streaming,能实时的对数据进行处理与获取作用。还有Spark SQL功用,格外以其间的DataFrame重为首要。别的,ML与MLlib也是散布式机器学习的首要有些。Spark是Hadoop生态圈中的有力弥补,并非代替品,假如要说代替,那也只是代替了MapReduce散布式核算结构算了,散布式调试与处理仍然用Yarn,文件体系仍然会运用HDFS。3.5 概率、核算与线性代数对数据进行核算与剖析,是需求核算学的根底常识。别的,许多疑问都能够转化为一个概率疑问,并不是要完全断定的作用,只需概率达满足即可。概率论方面的首要是贝叶斯核算,隐马尔可夫模型等之类的。这些都是深化了解算法的根底。对数据的运算,许多时分即是直接矩阵运算,而触及矩阵的各种运算也恰是线性代数有关有关的疑问。机器学习之所以有用,是由于模型对数据的处理,终究都会变成一系列的数学优化疑问,并且首要和凸优化常识有关。机器学习的各种核算,都是和数学接近有关。除了上面的概率、核算与线性代数,还会和微积分有必定的联络。当然,但除非你深化研讨算法的基地原理或许写学术论文需求,也不要被数学吓到了。在机器学习运用进程中,并不会用到太多的数学常识。并且,也并不需求完全把上面这些课程学好了再来进行机器学习。核算机根据数学,但运用型的算法,并不需求格外深沉的数学功底。假如早年课程学得欠好也没有太大的联络,许多常识到了要害时刻再补一下也不迟。3.6 机器学习与深度学习数据开掘与人工智能中和算法有关的有些,常用的分类算法,聚类算法是根底。推行开来,即是监督算法与非监督算法,监督算法中,除了分类,还有回归。非监督算法中,除了聚类,还稀有据降维,还有用于特性引荐的有关规矩。别的,专门处理天然言语的机器学习也即NLP,或许文本数据开掘,是别的一个偏重方向。对算法的了解,需求前面的核算与概率等等数学常识,还需求联络编码才干,最佳能自个完结一些演示算法流程的Demo程序来辅佐了解。实习运用中,最佳以第三方库为准,它们经过许多人员的查验,不管是功用仍是算法完好性上都会十分好,自个完结的程序只是用于了解算法流程即可。除非你对算法了解很完全,并且编码才干也十分强,并且觉得现有的结构不能满足你的运用。除了算法及其参数调优外,还有别的两个首要的内容,特征获取与模型评价。如何从初始数据中获取出用于算法的特征是很要害的。许多时分,不相同算法在功用区别上并不显着,但不相同的特征获取办法,却能发作比照大的距离。在某种特征上运用特定的算法,还需求做的即是模型评价,如何评价一个模型是好仍是坏,在必定程度上也表现了机器学习是不是有用的根据。在特征获取上,一个比照炽热的范畴天然是深度学习了。源于多层神经网络,是一种非监督的特征获取办法,十分好的用于图画、语音与视觉处理。值得一提的是,深度学习在许多本地的功用现已逾越传统的机器学习算法。3.7 事务及杂项除上上面的纯技术外,还有一些非技术上的技术。事务了解,商业洞悉,沟通与沟通才干,格外以事务的了解才干为首要。数据是死的,无法十分好的了解事务中的疑问,也就无法十分好的运用现稀有据,乃至无法十分好的解读其间的定论。了解事务通常需求一些专业的范畴常识,比方做网络安全的,需求安全的一些根底常识;做电商的,需求了解其间各个方关于其时出售的影响;做二手车估值的,需求对二手车残值评价有必定的了解。除了事务常识外,还需求必定的文档与报表技术,比方Word、PPT与Markdown东西的运用,只需完好的文档与出色的表达,才十分好表现数据所展示出来的作用。别的,英文才干与写作也相同首要,需求常常阅览一些英文文章。阅览的首要意图,即是随时更新自个的技术,拓宽常识面。而写作,即是自个常识堆集的一种办法,将纸上的东西,变成自个的技术。4结语关于高档信号处理,首要用于特征获取,自个感触如今能够经过学习神经网络与深度学习来处理,深度学习是专为处理特征获取的疑问而来。七大技术,总结起来,即是了解一门Linux体系及其上的常用东西,遇到通常的数据,能够经过SQL来做简略剖析或许聚合。假如数据量比照大,能够运用Hadoop等大数据结构处理。在深化开掘上,可用Python或许R言语进行编程,运用以概率核算为支撑的机器学习算法。要做好数据极客,只需在各种东西与技术根底上,再加强自个的事务喜欢点,协作自个的领悟而修行。果能如此,锲而不舍,则全国定有你的六合。(这全国是年青人的,终究是搞数据的年青人,将来归于咱们,致各位如今、将来的数据科学家)。(本次同享内容的结束)主持人:好的,谢谢云戒老师给咱们带来的精彩同享,今日同享的内容对我来说很受用,我信赖对许多人来说也是的,我信赖许多人正本对数据有关的一些名词意义以及联络了解的不那么了解,今日老师都给咱们收拾了解了,我信赖咱们对自个所做的作业在数据场中所在的方位现已很了解了,将来的尽力方向也应当比照明晰啦,下面进入自在发问环节,对今日的同享内容有疑问的,咱们能够提出来啦。自& &&由谈论疑问1:大数据和云核算的根底书本那些值得一看?云戒:仍是要分了解哈,大数据和云核算并不太相同哦。搞数据的以大数据方面的书为主。大数据以spark和hadoop为基地,找些这方面的书箧来看即可。疑问2:来自数据剖析与数据开掘群发问 :我想问下,从数据处理视点讲,python和R只需深化研讨一种就能够了吧?云戒:假如从数据处理视点来讲,学python比R十分好。疑问3:比方做车辆轨道剖析和时刻猜测这块,需求运用到的技术都会有哪些呢?云戒 :来自群员发问 比方做车辆轨道剖析和时刻猜测这块,需求运用到的技术都会有哪些呢 轨道是指猜测吗?时刻猜测的话,这些python都有专门的库,把握好pandas,scikit,spark mllib都很有用。疑问4:ETL工程师首要作业责任有哪些?云戒:ETL工程师首要作业责任有哪些 ,首要是数据搜集、开发,通常就都叫数据工程师,或许专门的爬虫工程师疑问5:来自7群的发问:想问问老师,python和R哪个更合适在散布式上运用?云戒:&天然是python,python有许多老练的方案。疑问6:来自15群发问:问个东西的疑问。近来了解到postgresql和greenplum比照热。云戒以为如何?云戒:pgl即是和中数据库算了,greenplum我没有用过,需求看具体能不能满足你的需求嘛。疑问7:刚入门python,老师主张如何灵敏的上手,这方面有啥好的主张么?云戒:能够从兴趣数据疑问开端。疑问8:来自15群发问:想学习核算学,哪本书好,包含回归,聚类,神经网络,决议方案树云戒:先试一下,这本书让你有一个不错的了解,以python为代码解说。疑问9:那个天然言语处理具体是做啥,文本开掘?云戒:今日头条的特性引荐,即是比照闻名的文本剖析,核算文本的相似性,获取文本的主题,获取文章的情感等等。疑问10:请问云戒老师,图画的非监督特征获取算法是通用的吗?这儿有没有引荐的算法包?云戒:&图画有一些相应的特征获取办法,经过的如今是深度学习,深度学习即无监督的特征学习,格外是其间的卷积神经网络,专门用于处理图画。疑问11:作为一个没有开发履历的,学etl通常的流程是如何的,比方学啥言语等云戒:python和java都是十分不错的,没有固定的流程,找一个网站,把数据抓取下来,存储数据库或许hadoop,再根据上面作些剖析即可。疑问12:大数据这块跟开发的联络是如何的?感触如今有些公司在打着大数据的旗帜招开发的人,如今市面上的编程言语以哪种需求最高,java,python,仍是啥?云戒 :&嗯,有这么的公司哈。和大数据结构(hadoop, spark)有关的,更多是java, 和数据开掘、机器学习有关的,python具有许多优势。(图四)
关键字: 多少,能知,技能,数据,大数,生活,直播,学习,主持人,天善,微信
看过本文的人还看过
人气:1334 更新:
人气:656 更新:
人气:536 更新:
人气:481 更新:
极晨智道订阅号的更多文章
大家在看 ^+^
推荐阅读 ^o^
『中國邊疆研究與歷史書寫』研討會日程安排
过真伤己、过直伤人
中国人走得太远太快,灵魂跟不上了(深度好文)
他说第二,有人敢说第一吗?
猜你喜欢 ^_^
24小时热门文章
微信扫一扫
分享到朋友圈

我要回帖

更多关于 怎么才能做老师 的文章

 

随机推荐