Tag: numpy

交织两个numpy数组

假设给出了以下数组: a = array([1,3,5]) b = array([2,4,6]) 如何有效地交织他们,以便得到这样的第三个数组 c = array([1,2,3,4,5,6]) 可以假定length(a)==length(b) 。

pythonnumpy机epsilon

我想了解什么是机器epsilon。 根据维基百科,它可以计算如下: def machineEpsilon(func=float): machine_epsilon = func(1) while func(1)+func(machine_epsilon) != func(1): machine_epsilon_last = machine_epsilon machine_epsilon = func(machine_epsilon) / func(2) return machine_epsilon_last 但是,它只适用于双精度数字。 我有兴趣修改它以支持单精度数字。 我读过numpy可以使用,特别是numpy.float32类。 任何人都可以帮助修改该function?

如何在keras中获得可重复的结果

每次我从imdb_lstm.py框架运行imdb_lstm.py示例( https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py )时,我得到了不同的结果(testing准确性)。代码包含np.random.seed(1337)在顶部,在任何kerasimport之前。 它应该防止它为每次运行产生不同的数字。 我错过了什么? 更新:如何repro: 安装Keras( http://keras.io/ ) 执行https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py几次。 它将训练模型并输出testing精度。 预期结果:每次运行testing的准确性都是一样的。 实际结果:每次运行testing的准确性都不一样。 UPDATE2:我使用MinGW / msys,模块版本在Windows 8.1上运行它: theano 0.7.0 numpy 1.8.1 scipy 0.14.0c1 UPDATE3:我把问题缩小了一点。 如果我用GPU运行这个例子(设置theano flag device = gpu0),那么我每次都得到不同的testing精度,但是如果我在CPU上运行它,那么一切都按预期工作。 我的显卡:NVIDIA GeForce GT 635)

Scipy稀疏…数组?

所以,我正在做一些Kmeans分类,使用非常稀疏的numpy数组 – 很多很多的零。 我想我会使用scipy的'稀疏'包来减less存储开销,但我有点困惑如何创build数组,而不是matrix。 我已经通过本教程了解如何创build稀疏matrix: http : //www.scipy.org/SciPy_Tutorial#head-c60163f2fd2bab79edd94be43682414f18b90df7 为了模仿一个数组,我只是创build一个1xN的matrix,但正如你所猜测的,Asp.dot(Bsp)不能很好地工作,因为你不能乘以两个1xNmatrix。 我不得不将每个数组转换为Nx1,这是非常蹩脚的,因为我会为每个点积计算。 接下来,我尝试创build一个NxNmatrix,其中第1行==第1行(这样您可以乘以两个matrix,只需将左上angular作为点乘积),但事实certificate效率并不高。 我喜欢使用scipy的稀疏包作为numpy的数组()的魔术替代品,但是到目前为止,我并不确定该怎么做。 有什么build议?

计算不规则间隔点密度的有效方法

我正在尝试生成地图叠加图像,以帮助识别热点,即地图上具有高密度数据点的区域。 我所尝试的方法都不足以满足我的需求。 注意:我忘记提及algorithm在低和高缩放情况(或低和高数据点密度)下都能正常工作。 我通过numpy,pyplot和scipy库来查看,最接近我能find的是numpy.histogram2d。 正如你在下面的图片中看到的,histogram2d的输出是比较粗糙的。 (每个图像包含覆盖热图的点以便更好地理解) 我的第二个尝试是迭代所有的数据点,然后计算热点值作为距离的函数。 这产生了一个更好看的形象,但它在我的应用程序中使用太慢。 由于它是O(n),所以它可以正常工作100点,但是当我使用我的30000点的实际数据集时会发生。 我最后的尝试是将数据存储在KDTree中,并使用最近的5个点来计算热点值。 这个algorithm是O(1),大数据集要快得多。 它还不够快,生成256×256位图需要大约20秒,我希望在1秒左右的时间内完成。 编辑 由6502提供的boxsum平滑解决scheme在所有缩放级别都能正常运行,比我的原始方法快得多。 Luke和Neil G提出的高斯滤波器解决scheme是最快的。 您可以看到下面的所有四种方法,总共使用1000个数据点,在3倍缩放下,大约有60个点可见。 完整的代码,生成我原来的3次尝试,6502提供boxsum平滑解决scheme和卢克build议的高斯filter(改进处理边缘更好,允许放大)在这里: import matplotlib import numpy as np from matplotlib.mlab import griddata import matplotlib.cm as cm import matplotlib.pyplot as plt import math from scipy.spatial import KDTree import time import scipy.ndimage as ndi def grid_density_kdtree(xl, yl, xi, yi, dfactor): zz […]

在亚马逊lambda中使用电影,scipy和numpy

我想使用AWS Lambdafunction生成video。 我遵循这里和这里find的指示。 我现在有以下过程来构build我的Lambda函数: 步骤1 启动Amazon Linux EC2实例并以root身份运行它: #! /usr/bin/env bash # Install the SciPy stack on Amazon Linux and prepare it for AWS Lambda yum -y update yum -y groupinstall "Development Tools" yum -y install blas –enablerepo=epel yum -y install lapack –enablerepo=epel yum -y install atlas-sse3-devel –enablerepo=epel yum -y install Cython –enablerepo=epel yum -y […]

如何通过广播密集的1d数组元素乘以一个scipy.sparsematrix?

假设我有一个2d稀疏数组。 在我真正的用例中,行和列的数量都要大得多(比如20000和50000),因此当使用密集表示法时,它不能适应内存: >>> import numpy as np >>> import scipy.sparse as ssp >>> a = ssp.lil_matrix((5, 3)) >>> a[1, 2] = -1 >>> a[4, 1] = 2 >>> a.todense() matrix([[ 0., 0., 0.], [ 0., 0., -1.], [ 0., 0., 0.], [ 0., 0., 0.], [ 0., 2., 0.]]) 现在假设我有一个密度为1d的数组,其大小为3的所有非零元素(在我的现实生活中是50000): >>> d = np.ones(3) * […]

用一个无代替大pandas或Numpy Nan与MysqlDB使用

我正在尝试使用MysqlDB将一个pandas数据框(或可以使用一个numpy数组)写入一个mysql数据库。 MysqlDB似乎不明白'南',我的数据库抛出一个错误,说南不在字段列表中。 我需要find一种方法将'nan'转换为NoneType。 有任何想法吗?

在Python中使用numpy处理TIFF(导入,导出)

我需要一个可以打开和导入TIFF图像到numpy数组的Python例程,所以我可以分析和修改包含的数据,然后再保存为TIFF。 (它们基本上是灰度级的光照强度图,代表每个像素的相应值) 我试图find一些东西,但没有关于TIFF的PIL方法的文档。 我试图弄清楚,但只有不好的模式/文件types不支持错误。 我需要在这里使用什么?

是否有相当于多维范围的Python(n)?

在Python中,范围(3)将返回[0,1,2]。 有多维范围的等价物吗? range((3,2)) # [(0,0),(0,1),(1,0),(1,1),(2,0),(2,1)] 所以,举例来说,尽pipe在基于瓦片的游戏上矩形区域的瓦片可以写成: for x,y in range((3,2)): 注意我没有要求执行。 我想知道这是否是一个公认的模式,如果有Python的内置函数或它的标准/通用库。