小编BBD*_*Sys的帖子

边界条件在热力方程和Crank-Nicholson有限差分解中的应用

下面的代码解决了1D热方程,该方程表示一个杆,其末端保持零温度,初始条件为10*np.sin(np.pi*x).

Dirichlet边界条件(两端的零温度)如何适用于此计算?我被告知矩阵A的上部,下部行包含两个非零元素,缺少的第三个元素 Dirichlet条件.但我不明白这种情况会影响计算的机制.如果A中缺少元素,u_ {0}或u_ {n}如何为零?

下面的有限差分方法使用Crank-Nicholson.

import numpy as np
import scipy.linalg

# Number of internal points
N = 200

# Calculate Spatial Step-Size
h = 1/(N+1.0)
k = h/2

x = np.linspace(0,1,N+2)
x = x[1:-1] # get rid of the '0' and '1' at each end

# Initial Conditions
u = np.transpose(np.mat(10*np.sin(np.pi*x)))

# second derivative matrix
I2 = -2*np.eye(N)
E = np.diag(np.ones((N-1)), k=1)
D2 = (I2 + E + E.T)/(h**2)

I = np.eye(N)

TFinal = 1
NumOfTimeSteps = …
Run Code Online (Sandbox Code Playgroud)

python math scientific-computing scipy differential-equations

6
推荐指数
1
解决办法
4999
查看次数

模糊分组,对相似词进行分组

这个问题在此之前被问到过

将类似词汇分组的好策略是什么?

但没有给出如何"分组"项目的明确答案.基于difflib的解决方案基本上是搜索,对于给定项目,difflib可以从列表中返回最相似的单词.但是如何将其用于分组呢?

我想减少

['ape', 'appel', 'apple', 'peach', 'puppy']
Run Code Online (Sandbox Code Playgroud)

['ape', 'appel', 'peach', 'puppy']
Run Code Online (Sandbox Code Playgroud)

要么

['ape', 'apple', 'peach', 'puppy']
Run Code Online (Sandbox Code Playgroud)

我尝试的一个想法是,对于每个项目,遍历列表,如果get_close_matches返回多个匹配,则使用它,如果不保持单词不变.这部分工作,但它可以建议苹果为appel,然后申请苹果,这些话只会切换位置,没有任何改变.

我会很感激任何指针,图书馆的名称等.

注意:同样在性能方面,我们有300,000个项目列表,get_close_matches似乎有点慢.有谁知道基于C/++的解决方案吗?

谢谢,

注意:进一步调查显示kmedoid是正确的算法(以及层次聚类),因为kmedoid不需要"中心",它需要/使用数据点本身作为中心(这些点称为medoids,因此名称).在单词分组的情况下,medoid将是该组/集群的代表元素.

python algorithm nlp cluster-analysis machine-learning

6
推荐指数
1
解决办法
5712
查看次数

事件序列,循环神经网络,PyBrain

我试图使用递归神经网络来预测销售需求.这里

/sf/answers/176760461/

提到的序列在PyBrain中受到示例代码的支持.即使数据不是完全类别,我也为此示例建模了它们.数据在这里

6 6 6 6 2 6 2 6 2 2 6 2 6 6 2 6 2 4 4 4 5 6 6 1 2 2 6 6 6 2 6 2 6 6 2 6 2 2 6 2 1 2 2 6 6 6 2 1 2 6 2 6 6 2 2 6 2 2 2 6 2 6 2 2 2 2 2 6 2 2 6 6 6 6 1 2 2 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network

6
推荐指数
1
解决办法
4237
查看次数

使用FFT结果重新创建时间序列数据,而不使用ifft

我使用fft分析了sunspots.dat数据(下面),这是该领域的一个典型例子.我从真实和想象部分的fft中获得了结果.然后我尝试使用这些系数(前20个)来重建符合傅立叶变换公式的数据.思考真实的部分对应于a_n和想象到b_n,我有

import numpy as np
from scipy import *
from matplotlib import pyplot as gplt
from scipy import fftpack

def f(Y,x):
    total = 0
    for i in range(20):
        total += Y.real[i]*np.cos(i*x) + Y.imag[i]*np.sin(i*x)
    return total

tempdata = np.loadtxt("sunspots.dat")

year=tempdata[:,0]
wolfer=tempdata[:,1]

Y=fft(wolfer)
n=len(Y)
print n

xs = linspace(0, 2*pi,1000)
gplt.plot(xs, [f(Y, x) for x in xs], '.')
gplt.show()       
Run Code Online (Sandbox Code Playgroud)

但是出于某种原因,我的情节并不反映ifft生成的情节(我在两侧使用相同数量的系数).可能有什么不对?

数据:

http://linuxgazette.net/115/misc/andreasen/sunspots.dat

python math signal-processing fft

5
推荐指数
1
解决办法
3726
查看次数

Python中的离散拉普拉斯算子(del2等价)

我需要Python/Numpy等效的Matlab(Octave)离散拉普拉斯算子(函数)del2().我试过几个Python解决方案,其中没有一个似乎与del2的输出相匹配.在Octave我有

image = [3 4 6 7; 8 9 10 11; 12 13 14 15;16 17 18 19]
del2(image)
Run Code Online (Sandbox Code Playgroud)

这给出了结果

   0.25000  -0.25000  -0.25000  -0.75000
  -0.25000  -0.25000   0.00000   0.00000
   0.00000   0.00000   0.00000   0.00000
   0.25000   0.25000   0.00000   0.00000
Run Code Online (Sandbox Code Playgroud)

在Python上我试过了

import numpy as np
from scipy import ndimage
import scipy.ndimage.filters

image =  np.array([[3, 4, 6, 7],[8, 9, 10, 11],[12, 13, 14, 15],[16, 17, 18, 19]])
stencil = np.array([[0, 1, 0],[1, -4, 1], [0, 1, 0]])
print ndimage.convolve(image, stencil, mode='wrap')
Run Code Online (Sandbox Code Playgroud)

给出了结果

[[ 23  19 …
Run Code Online (Sandbox Code Playgroud)

python numpy scientific-computing scipy

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

性能问题,使用亲和矩阵聚类,特征值

我试图在图像上使用谱聚类.我首先计算亲和度矩阵,然后尝试获得特征向量.但是,在7056x7056矩阵上,eig()调用时间过长.关于如何改进这个的任何建议?也许我应该使用不同形式的亲和力?

import matplotlib.pyplot as plt
import numpy as np

Img = plt.imread("twoObj.bmp")
Img2 = Img.flatten()
(n,) = Img2.shape
A = np.subtract.outer(Img2, Img2)
V,D = np.linalg.eig(A)
Run Code Online (Sandbox Code Playgroud)

python numpy image-processing linear-algebra

5
推荐指数
1
解决办法
837
查看次数

累计每月总计和Postgresql

我试图计算dellstore2数据库的累计用户数.看看这里和其他论坛的答案,我用过这个

select 
date_trunc('month',orderdate),
sum(count(distinct(customerid)))
   over (order by date_trunc('month',orderdate))
from orders group by date_trunc('month',orderdate)
Run Code Online (Sandbox Code Playgroud)

这回来了

2004-01-01 00:00:00.0   979
2004-02-01 00:00:00.0   1,952
2004-03-01 00:00:00.0   2,922
2004-04-01 00:00:00.0   3,898
2004-05-01 00:00:00.0   4,873
2004-06-01 00:00:00.0   5,846
2004-07-01 00:00:00.0   6,827
2004-08-01 00:00:00.0   7,799
2004-09-01 00:00:00.0   8,765
2004-10-01 00:00:00.0   9,745
2004-11-01 00:00:00.0   10,710
2004-12-01 00:00:00.0   11,681
Run Code Online (Sandbox Code Playgroud)

每个月都是

979
973
970
976
975
973
981
972
966
980
965
971
Run Code Online (Sandbox Code Playgroud)

看起来很好,看看前几个项目.但是当我跑的时候

select count(distinct(customerid)) from orders
Run Code Online (Sandbox Code Playgroud)

对于整个事情,我明白了

8996
Run Code Online (Sandbox Code Playgroud)

这与第一个输出11,681中的最后一项不一致.我猜上面的计算不能确定几个月的唯一性.这种计算的最快方法是什么,最好不使用自连接?

sql postgresql

5
推荐指数
1
解决办法
2684
查看次数

RMagic,IPython和摘要信息

按照这里的例子

http://www.randalolson.com/2013/01/14/filling-in-pythons-gaps-in-statistics-packages-with-rmagic/

我在IPython笔记本中的不同数据集上尝试了相同的操作.

https://github.com/burakbayramli/kod/blob/master/delltest/dell.tgz

from pandas import *
orders = read_csv("dell.csv",sep=",")
%load_ext rmagic
%R -i orders print(summary(orders))
Run Code Online (Sandbox Code Playgroud)

我明白了

     Length Class  Mode
[1,] 25     -none- list
[2,] 25     -none- list
[3,] 25     -none- list
..
Run Code Online (Sandbox Code Playgroud)

但是在R中也一样

data <- read.csv ("dell.csv",header=TRUE,sep=",")
print (summary(data))
Run Code Online (Sandbox Code Playgroud)

给我正确的摘要信息.

      rank        per_customer_count total_total_amount    orderid     
 Min.   : 1.000   Min.   : 1.000     Min.   :    0.14   Min.   :    1  
 1st Qu.: 2.000   1st Qu.: 6.000     1st Qu.:  866.11   1st Qu.: 2964  
 Median : 4.000   Median : 8.000     Median : 1764.08   Median …
Run Code Online (Sandbox Code Playgroud)

ipython rpy2 pandas ipython-notebook

5
推荐指数
1
解决办法
869
查看次数

将qcut分配为新列

在这里的熊猫笔记本上

http://nbviewer.ipython.org/urls/raw.github.com/carljv/Will_it_Python/master/ARM/ch5/arsenic_wells_switching.ipynb

我看到qcut的结果被指定为DataFrame的新列.Dataframe有两列,但以某种方式将qcut输出分配给一个新列神奇地找到了"var"变量所在的正确级别 - 未检查另一个变量.这里的熊猫语义是什么?示例输出如下:

In [2]:
from pandas import *
from statsmodels.formula.api import logit
from statsmodels.nonparametric import KDE
from patsy import dmatrix, dmatrices

In [3]:
df = read_csv('wells.dat', sep = ' ', header = 0, index_col = 0)
print df.head()
   switch  arsenic       dist  assoc  educ
1       1     2.36  16.826000      0     0
2       1     0.71  47.321999      0     0
3       0     2.07  20.966999      0    10
4       1     1.15  21.486000      0    12
5       1     1.10  40.874001      1    14


In [4]:
model_form = …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
1919
查看次数

FPS游戏和OpenGL

我正在尝试使用LD_PRELOAD方法捕获来自我的游戏的图像,通过提供我自己的库,以便拦截OpenGL调用.这个方法适用于简单的演示OpenGL代码(请参阅此项目的文件demo.cpp,make.sh,load.sh),但是对于我认为使用OpenGL的FPS游戏UrbanTerror不起作用.我自己提供的函数gettimeofday被正确调用,但是由于某些原因我的glXSwapBuffers不是.这些游戏使用OpenGL的方式有何不同?如果是这样,怎么样?有关如何加入UrT和/或其他FPS游戏的任何提示都将受到欢迎.我在Ubuntu 11上.

相关问题1

相关问题2

linux opengl

3
推荐指数
1
解决办法
637
查看次数

使用Numpy计算亲和度矩阵

我正在尝试为图像创建亲和度矩阵.我现在尝试使用简单的像素值差异,我的图像是84x84,扁平化它是一个大小为7056的向量,它给出了大小为7056x7056的亲和度矩阵A. 为了填写亲和度矩阵的值,我开始使用明显的方法:

import matplotlib.pyplot as plt
import numpy as np

Img = plt.imread("twoObj.bmp")
Img2 = Img.flatten()
(n,) = Img2.shape
print n
A = np.zeros((n,n))
for i in range(n):
    for j in range(n):
        A[i,j] = np.abs(Img2[i] - Img2[j])
Run Code Online (Sandbox Code Playgroud)

但执行时间太长.Numpy中是否有任何内置方式,或者可用的库更快地运行它?

python numpy image-processing

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

捕获显示/监视图像,在Linux上发送键盘输入

我需要处理发送到笔记本电脑视频显示器的图像,我需要使用C++或shell程序将键盘输入发送到我的Linux系统.

我的目标是处理属于FPS游戏的图像,然后根据这些图像在游戏中进行操作(因此键盘输入).我没有尝试理解(如果它甚至可能)如何使用某些API与游戏X或Y进行交互,我认为这是与任何游戏进行交互的最快捷方式,劫持Linux输入和输出.

没有任何内核或设备驱动程序黑客攻击,有没有办法做到这一点?之前我使用recordmydesktop将我的桌面记录为视频,我想我可以破解其代码并尝试从中进行逆向工程.还有其他想法吗?我在Ubuntu 11上.

相关问题

linux x11 linux-device-driver linux-kernel function-interposition

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

高效计算 1xM 次 MxM 次 Mx1,N 次

我需要计算 N 行的点积;假设对于每一行,我需要计算 1xM 乘 MxM 乘 Mx1。如果我只看一行,我会从这个计算中得到 1x1。但是,我有 N 行,所以我想我会堆叠这些行,然后将其提供给点积;但是我得到了 NxN 矩阵。我需要的结果在对角线上,但是有没有一种更快的方法来进行这种计算,同时又不会浪费空间?理想情况下,我希望最终得到一个 Nx1 向量,而不是 NxN 矩阵。

例子

单排

r = np.array([[1,2]]).T
R = np.array([[2,2],[2,2]])
Run Code Online (Sandbox Code Playgroud)

[[18]]
Run Code Online (Sandbox Code Playgroud)

多行

rs = np.array([[1,2],[4,4]]).T
R = np.array([[2,2],[2,2]])
print np.dot(np.dot(rs.T,R), rs)

[[ 18  48]
 [ 48 128]]
Run Code Online (Sandbox Code Playgroud)

performance numpy

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