小编Rob*_*ith的帖子

在Mathematica中使用MySQL数据库

我已经看到使用Input Needs["DatabaseLink"]和conn = OpenSQLConnection[JDBC["MySQL(Connector/J)", "yourserver/yourdatabase"], "Username" -> "yourusername", "Password" -> "yourpassword"](如果有人想试试)可以在Mathematica和MySQL数据库之间建立连接.顺便说一句,这里有DatabaseLink的文档.

有没有人有这种方式使用Mathematica的经验,可能是为了分析数据库中包含的数据?是否存在明显的缺点(速度,需要内存等)?

mysql database wolfram-mathematica

12
推荐指数
2
解决办法
2993
查看次数

带有分层索引的DataFrame中的列中的断言错误

另一个熊猫问题:

我有这个表与层次索引:

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)

python hierarchical pandas

11
推荐指数
1
解决办法
1630
查看次数

IE9拒绝处理XML响应

这是一个与有关的问题.

UPDATE II中,我根据Jamie的反馈添加了一个脚本.

更新 - tl;博士:

我用临时密钥创建了一个小提琴,这样你们就可以更容易地看到问题:http://jsfiddle.net/S6wEN/.

由于这个问题太长了,这是一个总结.

  • 我尝试使用imgur API通过跨域XHR更新图像.
  • 为了在实现中抽象细节,我使用的是Jquery Form Plugin(显然,它包含在小提琴中).
  • 适用于Chrome,Firefox等,但在IE9中无效.
  • 预期的结果是更新图像并检索图像类型.

您仍然可以在下面找到详细信息.

谢谢


我有这个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)

javascript xml ajax jquery internet-explorer-9

10
推荐指数
2
解决办法
2万
查看次数

在Python中总结一对索引(或更多)

计算样本基尼系数的一种方法是使用相对平均差(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)

python numpy sum

10
推荐指数
1
解决办法
1419
查看次数

阻止滚动子元素以在Angular 2中传播

这是经典之作.您有父元素和子元素.子元素绝对定位,您希望用户滚动其内容.但是,当您到达子元素的底部时,父元素(也允许有滚动条)开始滚动.那是不可取的.我想重现的基本行为是"纽约时报"评论部分.对于例如:

在此输入图像描述

允许正文向下滚动,但当你在评论部分的底部时,向下滚动不会做任何事情.我认为在这种情况下的主要区别在于,当光标位于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)

javascript scroll dom-events angular

10
推荐指数
4
解决办法
2万
查看次数

流体布局底部的页脚

我有一个流畅的布局,但结果是,当页面中没有足够的内容时,我的页脚继续向上移动,如本例所示.

在此输入图像描述

保持页脚位于页面底部的流行解决方案是使用position: fixed或者position: absolute,当我这样做时,内容可能会在调整大小时与页脚冲突(您可以在此处看到我的意思.尝试调整窗口大小到位其中文本隐藏在页脚后面).

在此输入图像描述

那么我怎样才能在底部获得一个页脚,而是以流畅的布局相应地移动页面的其余部分?

谢谢!

css jquery position footer fluid-layout

9
推荐指数
1
解决办法
2104
查看次数

获取url时的UnicodeEncodeError

我有这个问题尝试使用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')工作,但我想有一个更通用的解决方案. …

python unicode encoding urlfetch python-unicode

9
推荐指数
1
解决办法
3941
查看次数

在调整视口大小后,Firefox与Chrome的div宽度变化不同

在使用基于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)

html css firefox google-chrome flexbox

8
推荐指数
1
解决办法
2678
查看次数

在Python中处理大量数据

我一直在尝试处理大量数据(几GB),但我的个人计算机拒绝在合理的时间内完成,所以我想知道我有哪些选项?我使用的是python的csv.reader,但即使拿到 200,000行也很慢.然后我将这些数据迁移到一个sqlite数据库,该数据库检索结果的速度更快,而且没有使用如此多的内存但速度仍然是一个主要问题.

那么,再次......我有什么选择来处理这些数据?我想知道如何使用亚马逊的现场实例,这些实例似乎对此类目的有用,但也许还有其他解决方案可供探索.

假设现场实例是一个不错的选择,考虑到我之前从未使用它们,我想问一下我对它们的期望是什么?有没有人有经验使用它们做这种事情?如果是这样,您的工作流程是什么?我想我可以找到一些博客文章,详细介绍科学计算,图像处理等工作流程,但我没有找到任何东西,如果你能解释一下或者指出一些链接,我会很感激.

提前致谢.

python csv machine-learning scientific-computing amazon-ec2

7
推荐指数
1
解决办法
2109
查看次数

Pandas中奇怪的数据操作

我正在阅读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 WindowsWindows是从原始数据中的用户代理提取的类别,因此我们可以从收集的数据中看到非洲/开罗有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)

那么在那一点上,我会认为根据文档 …

python pandas

7
推荐指数
1
解决办法
1027
查看次数