r*g 发帖数: 3159 | 1 matlab matrix < numpy array broadcasting < APL/J |
|
r*g 发帖数: 3159 | 2 < 就是设计上不如。
例如 X- mean(X)这种东西,matlab 还要bsxfun 或者 repmat。不如numpy的处理。
这俩都不如J对任意维数组加rank/frame的处理。 |
|
x**********d 发帖数: 693 | 3 b是这么个东西:
a_list =[1, 2, 3, 4, 5,
2, 3, 4, 5, 1,
3, 4, 5,1, 2,
4, 5, 1, 2, 3,
5, 1, 2, 3, 4,]
a_array = numpy.array(a_list,dtype='float32')
b=a_array.reshape(5,5)
f=open('testfile.txt','wb')
for i in range(5):
for j in range(5):
f.write(str(b(i,j))+' ')
f.write('\n') <--------红色波浪线指明错误在这里
f.close()
报错:
Indentation Error: unindent does not match outer indentation level
请问这个怎么破? |
|
d**o 发帖数: 864 | 4 要看你具体需求,如果简单的统计分析,numpy scipy够用。 |
|
w***g 发帖数: 5958 | 5 20 million row * 100 column, 即使存成text的话也就10G吧, 这种操作bottleneck在
磁盘, 假设100MB/s的话差不多读入2分钟, 写出2分钟, 无论如何10分钟应该够了啊.
你用numpy搞个大数组, 直接转置了输出难道有问题吗? |
|
|
b*******r 发帖数: 361 | 7
in R:
> x=seq(-4,4,length=200)
> y=1/sqrt(2*pi)*exp(-x^2/2)
in Python:
> import numpy as np
> x = np.linspace(-4, 4, 200)
> y = 1 / np.sqrt(2 * np.pi) * np.exp(-x ** 2 / 2)
关于后面的人会不会被炸死,这是前面的*人*的问题,不是语言的问题。 |
|
b*******r 发帖数: 361 | 8 唯一的差异在于,python没有直接给你import numpy,这样很好啊,避免polution。r
有r的好处,但不是语法上有啥优越。 |
|
c*******y 发帖数: 1630 | 9 分析数据也看领域
pandas,numpy, scipy, statmodels
这些用熟练差不多了,关键还是找具体proj做。
你看的那个多半是UI方面的。 |
|
w*x 发帖数: 518 | 10 去scipy.org看一眼你就明白啦:)
主要是scipy+numpy+matplotlib
楼上说的pandas, statsmodels也很常用,不过等到要用再学不迟 |
|
w*x 发帖数: 518 | 11 大赞楼上的hanice回复,很靠谱。
我不是大神哈,也是一个做数据分析的苦逼PHD学生而已……
1. 你的数据量很小,楼上几位说的对——我也觉得R可能更适合你。
2. 如果你真的想学习真正的编程,那就用python呗……life is short! 那么你需要做
的事情是安装python + numpy + scipy + matplotlib. 安装方法在scipy.org上面有说
明。
3. 和hanice讨论一下……我觉得statsmodel的库还挺全的哈,不比R差,但是
community没有R的强~scipy自带的scipy.stats就比较基础了,很多时候不太够用。
module |
|
g*****y 发帖数: 1120 | 12 系统里同时装了两个,写程序不知道用哪个好?python3上支持ipython+numpy+scipy+
matplotlib吗? |
|
|
d****i 发帖数: 4809 | 14 numpy底层就是C写的,这样比较不合适,如果下面那些库都是用python写的话,慢个几
十到几百倍是正常的。 |
|
H****S 发帖数: 1359 | 15 说实话,按这个标准来看,jvm上最有前途的是groovy甚至jython。但是这两个语言的
作者一个公开承认scala可能会取代java,一个创造了numpy for cpython以后居然没有
把它port 到jython上。由此可见它们现在处于什么样的状态。
Scala的优势在于它强大的type system,可以帮助developer 直接通过compiler消除很
多在java里面只有runtime出先的bug。但是这件事分两面说,scala完全支持你写java
style的程序,这也是martin对scala程序员分类的第一类,等慢慢熟悉了可以再去
explore诸如type class,cake pattern这样的advanced feature。
最后说要一句学scala一定要学sbt,学习曲线一开始会很高,但是回报是相当高的。你
不光用sbt做依赖管理,同时也可方便的用它来做部署。 |
|
H****S 发帖数: 1359 | 16 说实话,按这个标准来看,jvm上最有前途的是groovy甚至jython。但是这两个语言的
作者一个公开承认scala可能会取代java,一个创造了numpy for cpython以后居然没有
把它port 到jython上。由此可见它们现在处于什么样的状态。
Scala的优势在于它强大的type system,可以帮助developer 直接通过compiler消除很
多在java里面只有runtime出先的bug。但是这件事分两面说,scala完全支持你写java
style的程序,这也是martin对scala程序员分类的第一类,等慢慢熟悉了可以再去
explore诸如type class,cake pattern这样的advanced feature。
最后说要一句学scala一定要学sbt,学习曲线一开始会很高,但是回报是相当高的。你
不光用sbt做依赖管理,同时也可方便的用它来做部署。 |
|
m******t 发帖数: 635 | 17 和Ruby类似,Python现在也是中年危机了,从2.x -> 3.x的闹剧就可以看出端倪来。以
前python的优势有跨平台的安装和GUI,异步网路服务twisted,图形处理库matplot,
科学计算numpy,scipy,不过现在桌面边缘化,应用网络化,我还真没有看出python的
优势是什么现在。 |
|
|
i***r 发帖数: 1035 | 19 现在正在学,也算是从头学。
有什么建议和推荐也欢迎。
这些东西书本上一时半会也学不来 |
|
d******e 发帖数: 2265 | 20 严肃的Python用户不会考虑Java好用的东西给eventgevent celery numpy scipy re都
在cpython上 |
|
x******a 发帖数: 6336 | 21 如果改成下面的loop就可以改变x的值了,请问怎么回事?谢谢 np是numpy
for i in xrange(len(x)):
x[i]=x[i]-np.mean(x[i]) |
|
n******7 发帖数: 12463 | 22 哦,原来lz是要改x的值
估计跟我一样脚本语言学起的,基础不牢吧
另外,既然用了numpy,就不要循环了
x=(x.T - np.mean(x,1)).T 这样就好 |
|
n******7 发帖数: 12463 | 23 你是说numpy vs matlab吗?
这两个都不是一个量级的吧 |
|
n******7 发帖数: 12463 | 24 还是不明白renjin有啥用处
我感觉这玩意最后就跟jython差不多
能让r-base跑jvm上,但是很多package不能用
比如用jython不能用numpy,这就鸡肋了 |
|
n******7 发帖数: 12463 | 25 你想说jit吧
我是准备在project中实际用java +jblas 之类跟 python+numpy比比看 |
|
|
j****x 发帖数: 943 | 27 对。hvac的code估计有挺多root finding 的code. 像求个enthalpy 找个湿球温度啥的
,numpy和scipy挺合适。不求大的pde 估计不用直接上fortran. |
|
j****x 发帖数: 943 | 28 对。hvac的code估计有挺多root finding 的code. 像求个enthalpy 找个湿球温度啥的
,numpy和scipy挺合适。不求大的pde 估计不用直接上fortran. |
|
p*******n 发帖数: 6 | 29 We are looking for a summer intern working on the analysis of massive amount
of time series data. The ideal candidate should be good at Python
programming with working experiences in Numpy/Pandas/Scikit-learn/Tkinter
modules. He should currently be a Ms or PhD student in a good school in USA.
Detailed information about internship at NEC labs can be found at
http://www.nec-labs.com/careers/internship.php
if you are interested, please send your resume to z**********[email protected] |
|
w***g 发帖数: 5958 | 30 python的定位就是prototyping和gluing。大公司真正需要速度的地方有java, C++之类
的顶着。或者像numpy这样后头有C/C++的实现撑着。什么时候真正有迫切需求了,自然
会有人去做速度。javascript就是个很好的例子。再说python又不是最慢的。人ruby比
python还慢几倍,不照样那么多人用。 |
|
n******7 发帖数: 12463 | 31 不是吧,不用matlab,那就用numpy,R,就是用octave,也不会到C++这里来啊
生物老板也不用开发什么运算密集的核心工具,为啥用C++? |
|
d****i 发帖数: 4809 | 32 这个很对啊,一点都不反动,Python作为一种general purpose的语言,和C, C++,
Java一样,不应在core package里面包含这些domain specific的东西,专门的东西就
是应该用其他分立的package来处理,就像numpy, scipy一样。 |
|
p**o 发帖数: 3409 | 33 因为要照顾高阶tensor,Numpy有如下丑陋难记的设定:
对于多维数组,* 是元素乘,dot()是矩阵乘;
对于矩阵,* 是矩阵乘,multiply()是元素乘。
这次专门引入一个矩阵算子,就可以统一起来了。
类似的提案其实14年前就开始提了,但他们要价太高,
还要妄图一揽子引入其他一大堆算子,
Guido被惹毛了就都拒了,说你们先想清楚再来找我。 |
|
x******a 发帖数: 6336 | 34 Int[4]:x
Out[4]:
array([['a', '1', '0.5'],
['b', '2', '0.2'],
['c', '3', '0.1']],
dtype='|S3')
我想把第一列的dtype改成str,第二列的改成int,第三列的改成float,
现在想到的办法是存到文件里再读出来,请问有没有其他简单的办法?
多谢 |
|
x******a 发帖数: 6336 | 35 我怎么把改过的3列放到一个ndarray里还保持dtype?thanks |
|
d******e 发帖数: 2265 | 36 标题党一回。
不要小看这个烂货。
js只是在web上有用。
小的部件上,比如ras PI. python是不二选择。
而且可能是除了C之外的唯一选择。
java调驱动太臃肿了。JS驱动硬件?
加上numpy/scipy群体。
各种软件写写胶水插件,网管之类的。
python 的份额还有的涨。 |
|
e*******o 发帖数: 4654 | 37 我以前上coursera 的一个课,mathworks 给那个课注册的学生99刀优惠价,今天又看
了一个课,免费提供matlab。
就这,我也懒得下,准备玩玩numpy了。 |
|
l********k 发帖数: 14844 | 38 看干嘛,看怎么用。如果把写代码的时间算进去,prototyping还真是python更快。高
大上们写好prototype,作完ppt,剩下翻译的活儿就交给本科农民工去干。谁要是有意
见,就把工作outsource掉。
再者,让你用c写个矩阵求逆,还真不见得能跑的比numpy快。 |
|
n******7 发帖数: 12463 | 39 我刚学matlab,本来是开源轮,想用octave的
好的ide确实很重要
用R的人应该标配Rstudio了
不过我觉得应该有给numpy优化的IDE的,毕竟是个主流工具 |
|
d******e 发帖数: 2265 | 40 好多包要会把。
numpy, pandas, scipy, nltk, pillow, django/torando/flask, celery, twisted/
gvent/tornado
不会这写很难找到工作吧。 |
|
w*x 发帖数: 518 | 41 去www.scipy.org上看一眼吧……然后去下载一个Anaconda...
你需要的包在安装Anaconda的时候都有了。
包括:
numpy - 基本数据类型支持
scipy - 基本科学运算支持
statsmodels - 统计
sklearn - 专用的ML包
pandas - 清理数据用的
matplotlib - 画图
但是你不用管这么多啦,下一个Anaconda全都有了……
是不是Anaconda都无所谓,你用什么WinPython, Enthought, Algorete Loopy都一样的
……
事? |
|
H****S 发帖数: 1359 | 42 Jython 不 support numpy,没什么前途的。 |
|
n******7 发帖数: 12463 | 43 平时主要用R,用过几次scipy统计包每次都出点大大小小的问题
最近几次如下
1. fit 一个distribution 参数,搜了一下,stack overflow上一哥们儿怎么都算不对
,后来发现是老版本bug,新版本才fix
2. 做binomial sampling,结果给出超大的数,结果发现是没有正确处理nan
3. 做chisquare,用0.11版发现chisquare([10,10,20,20])可以,
chisquare([10,10,20,20],[10,10,20,20])就不行,必须
chisquare(np.array([10,10,20,20]),np.array([10,10,20,20]))
这叫什么事?这个在0.14版也ok了
最近也开始用numpy,不知道是不是也是怎么buggy? |
|
L***n 发帖数: 6727 | 44 对,同感,我现在都不敢用 scipy了,numpy是建立在scipy基础上的,也不敢用 |
|
M*P 发帖数: 6456 | 45 反了,numpy比较早。一般java用什么数值计算库呢?
★ 发自iPhone App: ChineseWeb 7.8 |
|
n******7 发帖数: 12463 | 46 我是准备放弃了,没时间瞎折腾
本来是yy了一下scikit-learn,numpy+scipy+matplotlib 的组合
R |
|
m********5 发帖数: 17667 | 47 java里面我觉得没有太好的包,问题会比numpy更多
开源的,重视速度的项目始终会有傻瓜化不足的问题,即使ROOT也常有类似问题
对于你们我建议还是只用Matlab |
|
m********5 发帖数: 17667 | 48 对于任何开源包,你都要很清楚你的程序底层到底在干什么,不是仅仅数学上的。
我的建议是使用matlab进行prototyping. 当差不多知道你需要使用哪些具体的计算以
后,如果你希望速度有提升,可以使用numpy,ROOT等
因为知道需要哪些具体计算步骤之后,你可以有针对性得对这些算符进行彻底的测试,
比较在相同的矩阵大小下,matlab和他们的差异。 |
|
m********5 发帖数: 17667 | 49 手工写预处理代码逃不掉的
这方面只有matlab可以傻瓜化
因为matlab速度是次要的,主要是傻瓜化和正确性
它的很多元操作都有很复杂的condition判断,然后自动选择最优方法,overhead非常高
numpy应该是不会做成这样,因为并不是要做成matlab替代品 |
|
P**H 发帖数: 1897 | 50 scipy那么不堪?我一直在用numpy/scipy解eigen和方程。目前没发现什么重大问题。 |
|