我已经看到使用Input Needs["DatabaseLink"]和conn = OpenSQLConnection[JDBC["MySQL(Connector/J)", "yourserver/yourdatabase"], "Username" -> "yourusername", "Password" -> "yourpassword"](如果有人想试试)可以在Mathematica和MySQL数据库之间建立连接.顺便说一句,这里有DatabaseLink的文档.
有没有人有这种方式使用Mathematica的经验,可能是为了分析数据库中包含的数据?是否存在明显的缺点(速度,需要内存等)?
另一个熊猫问题:
我有这个表与层次索引:
In [51]:
from pandas import DataFrame
f = DataFrame({'a': ['1','2','3'], 'b': ['2','3','4']})
f.columns = [['level1 item1', 'level1 item2'],['', 'level2 item2'], ['level3 item1', 'level3 item2']]
f
Out[51]:
level1 item1 level1 item2
level2 item2
level3 item1 level3 item2
0 1 2
1 2 3
2 3 4
Run Code Online (Sandbox Code Playgroud)
选择level1 item1产生以下错误:
In [58]: f['level1 item1']
AssertionError: Index length did not match values
Run Code Online (Sandbox Code Playgroud)
但是,这似乎与级别数有些相关.当我将级别数减少到只有两个时,没有这样的错误:
from pandas import DataFrame
f = DataFrame({'a': ['1','2','3'], 'b': ['2','3','4']})
f.columns = [['level1 item1', 'level1 item2'],['', 'level1 …Run Code Online (Sandbox Code Playgroud) 这是一个与此有关的问题.
在UPDATE II中,我根据Jamie的反馈添加了一个脚本.
更新 - tl;博士:
我用临时密钥创建了一个小提琴,这样你们就可以更容易地看到问题:http://jsfiddle.net/S6wEN/.
由于这个问题太长了,这是一个总结.
您仍然可以在下面找到详细信息.
谢谢
我有这个HTML:
<body>
<form id="uploadForm" action="http://api.imgur.com/2/upload.xml" method="POST" enctype="multipart/form-data">
<input type="hidden" name="key" value="MYKEY">
File: <input type="file" name="image">
Return Type: <select id="uploadResponseType" name="mimetype">
<option value="xml">xml</option>
</select>
<input type="submit" value="Submit 1" name="uploadSubmitter1">
</form>
<div id="uploadOutput"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个表单可以通过跨域XHR上传图像到imgur.为了管理令人讨厌的细节,我使用的是Jquery Form Plugin,效果很好.但是,当我尝试将图像发送到imgur并接收xml响应时,它在IE9中无法正常工作(我没有在IE8中测试但我不期待好消息).它在Chrome和Firefox中运行良好.这是javascript部分:
(function() {
$('#uploadForm').ajaxForm({
beforeSubmit: function(a,f,o) {
o.dataType = $('#uploadResponseType')[0].value;
$('#uploadOutput').html('Submitting...');
},
complete: function(data) {
var xmlDoc = …Run Code Online (Sandbox Code Playgroud) 计算样本基尼系数的一种方法是使用相对平均差(RMD),它是基尼系数的2倍.RMD取决于以下给出的平均差异:

所以我需要计算样本中元素对之间的每个差异(yi - yj).我花了很多时间想出办法,但我想知道是否有一个功能可以帮到你.
起初我试过这个,但我敢打赌它在大数据集中非常慢(顺便说一下,s是样本):
In [124]:
%%timeit
from itertools import permutations
k = 0
for i, j in list(permutations(s,2)):
k += abs(i-j)
MD = k/float(len(s)**2)
G = MD / float(mean(s))
G = G/2
G
10000 loops, best of 3: 78 us per loop
Run Code Online (Sandbox Code Playgroud)
然后我尝试了以下哪个不太容易理解但更快:
In [126]:
%%timeit
m = abs(s - s.reshape(len(s), 1))
MD = np.sum(m)/float((len(s)**2))
G = MD / float(mean(s))
G = G/2
G
10000 loops, best of 3: 46.8 us per loop
Run Code Online (Sandbox Code Playgroud)
有没有什么有效但容易概括的东西?例如,如果我想总结三个指数怎么办?
这是我使用的样本:
sample …Run Code Online (Sandbox Code Playgroud) 这是经典之作.您有父元素和子元素.子元素绝对定位,您希望用户滚动其内容.但是,当您到达子元素的底部时,父元素(也允许有滚动条)开始滚动.那是不可取的.我想重现的基本行为是"纽约时报"评论部分.对于例如:
允许正文向下滚动,但当你在评论部分的底部时,向下滚动不会做任何事情.我认为在这种情况下的主要区别在于,当光标位于body元素上方时,我想让用户向下滚动.其他方法需要向正文添加一个类以防止正文中的任何滚动事件.我想我可以在Angular 2中使用一些Javascript来做到这一点,但这是我到目前为止失败的尝试:
我的子组件中有一个自定义指令:
<child-element scroller class="child"></child-element>
并且该指令应该停止将scroll事件传播到body元素:
import {Component} from 'angular2/core'
import {Directive, ElementRef, Renderer} from 'angular2/core';
@Directive({
selector: '[scroller]',
})
export class ScrollerDirective {
constructor(private elRef: ElementRef, private renderer: Renderer) {
renderer.listen(elRef.nativeElement, 'scroll', (event) => {
console.log('event!');
event.stopPropagation();
event.preventDefault();
})
}
}
Run Code Online (Sandbox Code Playgroud)
它实际上会监听事件但不会阻止传播.
演示:向下滚动数字列表,当您到达底部时,其父元素开始向下滚动.那就是问题所在.
如果您有其他方法可以实现此目的,请告诉我.
谢谢
更新:基于GünterZöchbauer提供的答案,我试图在用户到达底部时阻止车轮事件.这基本上是我在这个更新的演示中到目前为止所拥有的:
renderer.listen(elRef.nativeElement, 'wheel', (e) => {
console.log('event', e);
console.log('scrollTop', elRef.nativeElement.scrollTop);
console.log('lastScrollTop', lastScrollTop);
if (elRef.nativeElement.scrollTop == lastScrollTop && e.deltaY > 0) {
e = e || window.event; …Run Code Online (Sandbox Code Playgroud) 我有这个问题尝试使用lxml获取HTML文档中的所有文本节点,但我得到一个UnicodeEncodeError : 'ascii' codec can't encode character u'\xe9' in position 8995: ordinal not in range(128). 但是,当我试图找出这个页面的编码类型(encoding = chardet.detect(response)['encoding'])时,它说它是utf-8.单个页面有utf-8和ascii似乎很奇怪.实际上,这个:
fromstring(response).text_content().encode('ascii', 'replace')
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
这是我的代码:
from lxml.html import fromstring
import urllib2
import chardet
request = urllib2.Request(my_url)
request.add_header('User-Agent',
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)')
request.add_header("Accept-Language", "en-us")
response = urllib2.urlopen(request).read()
print encoding
print fromstring(response).text_content()
Run Code Online (Sandbox Code Playgroud)
输出:
utf-8
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 8995: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?请记住,我想用其他几个页面来做这个,所以我不想单独编码.
更新:
也许还有其他事情在这里发生.当我在终端上运行这个脚本时,我得到一个正确的输出但是当它在SublimeText中运行时,我得到UnicodeEncodeError ...¿?
UPDATE2:
当我使用此输出创建文件时,也会发生这种情况..encode('ascii', 'replace')工作,但我想有一个更通用的解决方案. …
在使用基于flexbox容器的布局减少视口后,我注意到了一个小差异.以下代码段包含两个容器(.container和.subcontainer)内的一些链接.在Chrome(45 beta)中,element无论视口尺寸如何,具有类的div 都具有相同的宽度.但是,在Firefox(40)中,每个div的宽度根据其内容而变化.
html,
body {
margin: 0;
padding: 0;
}
.container {
position: relative;
display: flex;
flex-direction: column;
width: 50%;
}
.element {
flex: 1 0 0;
padding: 0.5em;
text-align: center;
position: relative;
background-color: red;
margin-right: 1em;
}
.subcontainer {
flex: 0 1 auto;
display: flex;
}
.element a {
color: black;
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<body>
<div class="container">
<div class="subcontainer">
<div class="element"><a>abc</a>
</div>
<div class="element"><a>abcdef</a>
</div>
<div class="element"><a>abcdef</a>
</div>
</div>
</div>
</body> …Run Code Online (Sandbox Code Playgroud)我一直在尝试处理大量数据(几GB),但我的个人计算机拒绝在合理的时间内完成,所以我想知道我有哪些选项?我使用的是python的csv.reader,但即使拿到 200,000行也很慢.然后我将这些数据迁移到一个sqlite数据库,该数据库检索结果的速度更快,而且没有使用如此多的内存但速度仍然是一个主要问题.
那么,再次......我有什么选择来处理这些数据?我想知道如何使用亚马逊的现场实例,这些实例似乎对此类目的有用,但也许还有其他解决方案可供探索.
假设现场实例是一个不错的选择,考虑到我之前从未使用它们,我想问一下我对它们的期望是什么?有没有人有经验使用它们做这种事情?如果是这样,您的工作流程是什么?我想我可以找到一些博客文章,详细介绍科学计算,图像处理等工作流程,但我没有找到任何东西,如果你能解释一下或者指出一些链接,我会很感激.
提前致谢.
我正在阅读Wes Mckinney的Python for Data Analysis,但我对这种数据操作感到惊讶.你可以看到这里的所有程序,但我会在这里总结一下.假设你有这样的东西:
In [133]: agg_counts = by_tz_os.size().unstack().fillna(0)
Out[133]:
a Not Windows Windows
tz 245 276
Africa/Cairo 0 3
Africa/Casablanca 0 1
Africa/Ceuta 0 2
Africa/Johannesburg 0 1
Africa/Lusaka 0 1
America/Anchorage 4 1
...
Run Code Online (Sandbox Code Playgroud)
tz表示时区和Not Windows和Windows是从原始数据中的用户代理提取的类别,因此我们可以从收集的数据中看到非洲/开罗有3个Windows用户和0个非Windows用户.
然后,为了获得"顶级整体时区",我们有:
In [134]: indexer = agg_counts.sum(1).argsort()
Out[134]:
tz
24
Africa/Cairo 20
Africa/Casablanca 21
Africa/Ceuta 92
Africa/Johannesburg 87
Africa/Lusaka 53
America/Anchorage 54
America/Argentina/Buenos_Aires 57
America/Argentina/Cordoba 26
America/Argentina/Mendoza 55
America/Bogota 62
...
Run Code Online (Sandbox Code Playgroud)
那么在那一点上,我会认为根据文档 …