小编Bas*_*asj的帖子

重复两次数组的每个值(numpy)

让我们A像一个numpy数组:

A = np.array([1, 2, 3, 4, 5])
Run Code Online (Sandbox Code Playgroud)

我想找到更简洁的方法来生成一个新的数组,每个值重复两次:

B = np.array([1, 1, 2, 2, 3, 3, 4, 4, 5, 5])
Run Code Online (Sandbox Code Playgroud)

你认为这是更简单的方法吗?

import numpy as np
B = np.tile(A,2).reshape(2,-1).flatten('F')
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

2
推荐指数
1
解决办法
2650
查看次数

仅在将第一个内容写入磁盘时将文件写入磁盘

我打开一个文件:

mylog = open('test.log', 'w')
Run Code Online (Sandbox Code Playgroud)

有时一些内容是在mylog我的申请运行期间写的; 但有时在应用程序的运行时间内没有写任何东西,这取决于.

在这两种情况下,似乎test.log始终在磁盘上创建该文件.

有没有办法只在第一个内容写入磁盘时将文件写入磁盘?(mylog.write('blah')例如类似的东西)

即如果mylog.write('...')永远不会被调用,则test.log不会在磁盘上创建(空)文件.

python io file sys

2
推荐指数
1
解决办法
43
查看次数

单个页面上有1000个DOM元素

对于大"文本地图" BigPicture的项目,我需要有超过1000个文本输入. 单击+拖动时,可以"平移"显示的区域.

但性能非常差(在Firefox和Chrome上都有):渲染1000多个DOM元素并不快.

当然,另一个具有更好性能的解决方案是:处理a <canvas>,将文本渲染为位图,每次我们想要编辑文本时,让我们显示一个独特的DOM <textarea>,它消失了编辑完成,文本呈现为位图再次... 它的工作原理(我目前正朝着这个方向努力),但它需要更多的代码才能在画布上进行编辑.

问题:是否有可能提高在HTML页面上渲染1000多个DOM元素的性能,因此我根本不需要使用它<canvas>

或者在使用1000多个DOM元素平移页面时,不可能获得良好的性能?

在此输入图像描述


备注:

1)在我使用的演示中,<span contendteditable="true">因为我想要多行输入+自动调整大小,但渲染性能与标准相同<textarea>.*

2)作为参考,这是我创建1000个文本元素的方法.

for (i=0; i < 1000; i++)
{
  var blax = (Math.random()-0.5)*3000;
  var blay = (Math.random()-0.5)*3000;
  var tb = document.createElement('span');
  $(tb).data("x", blax / $(window).width());
  $(tb).data("y", blay / $(window).height());
  $(tb).data("size", 20 * currentzoom);
  tb.contentEditable = true;
  tb.style.fontFamily = 'arial';
  tb.style.fontSize = '20px';
  tb.style.position  = 'absolute';
  tb.style.top = blay + 'px';
  tb.style.left = blax + 'px';
  tb.innerHTML="newtext";
  document.body.appendChild(tb);
}
Run Code Online (Sandbox Code Playgroud)

html javascript html5 dom html5-canvas

2
推荐指数
1
解决办法
1213
查看次数

在Bootstrap导航栏中停止用户选择

我想阻止在Boostrap上进行用户选择navbar,例如:

http://getbootstrap.com/examples/navbar-fixed-top/

如何停止用户选择?

我试过user-select: none;但如果你做CTRL-A就失败了.

注意:我不想阻止用户在页面上复制文本,但我想通过避免选择导航栏元素来提供更好的用户体验.

html css user-experience twitter-bootstrap

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

Hammer.js pan事件仅适用于触摸设备,而不适用于台式计算机Click + Drag

我将这个标准代码用于Hammer.js的Pan/Pinch (1):

var mc = new Hammer(document.body);

mc.add(new Hammer.Pinch({ threshold: 0 })).recognizeWith(mc.get('pan'));

// let the pan gesture support all directions. this will block the vertical scrolling on a touch-device while on the element
mc.get('pan').set({ direction: Hammer.DIRECTION_ALL });
mc.on("panleft panright panup pandown tap press pinchstart pinchmove", function(ev) {
    $('#myElement').text(ev.type +" gesture detected. ev.scale=" + ev.scale + "  ev.deltaX,Y=" + ev.deltaX +'  ' + ev.deltaY);
});
Run Code Online (Sandbox Code Playgroud)

如何获取hammer.js pan事件仅适用于触摸设备而不适用于台式计算机Click+Drag(因为我已经为桌面计算机点击+拖动工作代码了,我不想重写这个!)

注意(1):顺便说一句,这段代码好吗?为什么recognizeWith真的需要?:

javascript mobile ios hammer.js

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

为什么Numpy社区提供32位二进制文​​件安装程序但不提供64位?

Numpy社区在这里提供32位二进制文​​件安装程序

在此输入图像描述

但没有64位二进制文​​件安装程序.


如果它们根本不是二进制文件安装程序,它将是连贯的,我会理解它是一个刻意的选择,意思是"你应该自己编译和构建它". 但事实并非如此,因为提供了32位二进制文​​件安装程序.

Numpy的64位二进制安装程序是否有正式可用的技术原因?

PS:我知道http://www.lfd.uci.edu/~gohlke/pythonlibs/但这里只有Numpy-MKL,我不确定这是否适用于每台机器因为英特尔MKL.

python numpy binaries

2
推荐指数
1
解决办法
170
查看次数

使用 Google Maps API 自动完成功能仅获取城市名称

由于 Google Maps API,我使用此代码提供位置名称的自动补全

var autocomplete = new google.maps.places.Autocomplete(document.getElementById('adr'));
Run Code Online (Sandbox Code Playgroud)
City : <input id="adr" type="text" class="form-control" value="" >
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

提供了所有位置名称,如城市名称“巴黎”,还有国家名称“德国”、地区名称等。

除了城市名称之外,怎么可能有自动完成功能?即没有街道名称,没有国家名称,没有地区名称?

javascript google-maps autocomplete

2
推荐指数
1
解决办法
9757
查看次数

编译一个Cython项目并清理

我正在使用:

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize("myfile.pyx"))
Run Code Online (Sandbox Code Playgroud)

编译myfile.pyx。有没有办法:

  1. .pyd当前文件夹(而不是build/子文件夹)
  2. 编译后清理(即删除build/子文件夹,删除.c文件)

不用自己做os.remove(...)吗?

python cython

2
推荐指数
1
解决办法
3537
查看次数

在Numpy中运行max/limsup:什么优化?

为了计算limsup序列,让我们计算,每个imax(A[i:]):

import numpy as np
n = 10
A = np.random.random(n)
M = np.zeros(n)

for i in range(n):
    M[i] = np.max(A[i:])
Run Code Online (Sandbox Code Playgroud)

这是一个例子:

[ 0.85436167  0.92015564  0.44302976  0.56030154  0.16415721  0.39810583   0.65692947  0.5884984   0.57646131  0.0774121 ]
[ 0.92015564  0.92015564  0.65692947  0.65692947  0.65692947  0.65692947   0.65692947  0.5884984   0.57646131  0.0774121 ]
Run Code Online (Sandbox Code Playgroud)

n100万时,这非常非常慢.

可以使用什么优化来有效地计算阵列M

python arrays performance numpy vectorization

2
推荐指数
1
解决办法
171
查看次数

关闭 Python 守护进程时运行代码

我正在使用此处此处引用的著名代码在 Python 中执行守护程序,如下所示:

import sys, daemon

class test(daemon.Daemon):
    def run(self):
        self.db = somedb.connect()            # connect to a DB
        self.blah = 127
        with open('blah0.txt', 'w') as f:
            f.write(self.blah)
        # doing lots of things here, modifying self.blah

    def before_stop(self):
        self.db.close()                      # properly close the DB (sync to disk, etc.)
        with open('blah1.txt', 'w') as f:
            f.write(self.blah)

daemon = test(pidfile='_.pid')

if 'start' == sys.argv[1]: 
    daemon.start()
elif 'stop' == sys.argv[1]: 
    daemon.before_stop()               # AttributeError: test instance has no attribute …
Run Code Online (Sandbox Code Playgroud)

python linux daemon python-daemon

2
推荐指数
1
解决办法
1573
查看次数