小编tat*_*ler的帖子

在NumPy数组的每一行(行方式)上应用函数

所以,我有这个功能 -

def function(x):
    x , y = vector
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)
Run Code Online (Sandbox Code Playgroud)

让我们说我想在以下几点评估它(第一列是x值,第二列是y值) -

array([[-1.56113514,  4.51759732],
       [-2.80261623,  5.068371  ],
       [ 0.7792729 ,  6.0169462 ],
       [-1.35672858,  3.52517478],
       [-1.92074891,  5.79966161],
       [-2.79340321,  4.73430001],
       [-2.79655868,  5.05361163],
       [-2.13637747,  5.39255837],
       [ 0.17341809,  3.60918261],
       [-1.22712921,  4.95327158]])
Run Code Online (Sandbox Code Playgroud)

即我想传递函数第一行的值和值,然后第二行和评估等,然后最终的结果将是在这些点评估的值的数组(所以,一个由10个值组成的数组) .

因此,例如,如果函数是,例如,双变量正态分布 -

def function2(x):

function2 = (mvnorm.pdf(x,[0,0],[[1,0],[0,1]]))

return function2
Run Code Online (Sandbox Code Playgroud)

我把上面的值传递给了这个函数,我会得到 -

array([  1.17738907e-05,   1.08383957e-04,   1.69855078e-04,
         5.64757613e-06,   1.37432346e-05,   1.44032800e-04,
         1.33426313e-05,   1.97822328e-06,   6.56121709e-08,
         4.67076770e-05])
Run Code Online (Sandbox Code Playgroud)

所以基本上,我正在寻找一种方法来重写函数,以便它可以做到这一点.此外,我想将函数仅作为一个变量的函数(即只是x的函数).

谢谢您的帮助!

python arrays numpy apply

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

将日期时间存储在 numpy 数组中

假设我想在一个 numpy 数组中存储超过 100 次 for 循环迭代的日期时间值,如下所示:

import numpy as np
import time 
from datetime import datetime

Startmult = np.zeros((1,100))
for i in range(100): 
    Startmult[i] = datetime.now()
Run Code Online (Sandbox Code Playgroud)

每当我这样做时,我都会收到以下错误:

float() argument must be a string or a number, not 'datetime.datetime'
Run Code Online (Sandbox Code Playgroud)

有没有办法克服这个错误?

感谢您的帮助!

编辑:另外,现在我想执行以下操作,但似乎找不到解决方案:

 CPUtime = np.zeros((100), dtype='datetime64[s]')
 for i in range(100): 
     Start = datetime.now() 
     CPUtime[i] = datetime.now()-Start
Run Code Online (Sandbox Code Playgroud)

现在得到以下错误:

Could not convert object to NumPy datetime
Run Code Online (Sandbox Code Playgroud)

python datetime numpy python-3.x

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

在Python for循环中存储数组

假设我有一个函数(称为 numpyarrayfunction),每次运行它时都会输出一个数组。我想多次运行该函数并存储结果数组。显然,我目前使用的方法是 -

numpyarray = np.zeros((5))
for i in range(5):
    numpyarray[i] = numpyarrayfunction
Run Code Online (Sandbox Code Playgroud)

由于我试图在数组中存储数组,因此会生成错误消息。

最终,我想做的是取数组中数字的平均值,然后取这些平均值的平均值。但目前,只知道如何存储数组会很有用!

感谢您的帮助!

python numpy python-3.x

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

R中的chol()函数保持返回Upper Triangular(我需要Lower Triangular)

我试图使用chol()函数在R中获得下面矩阵的下三角Cholesky分解.然而,它继续返回上三角分解,我似乎无法找到一种方法来获得下三角分解,即使在查看文档之后.以下是我使用的代码 -

x <- matrix(c(4,2,-2, 2,10,2, -2,2,5), ncol = 3, nrow = 3)
Q <- chol(x)
Q
#       [,1] [,2]      [,3]
#  [1,]    2    1 -1.000000
#  [2,]    0    3  1.000000
#  [3,]    0    0  1.732051
Run Code Online (Sandbox Code Playgroud)

基本上,我需要找到矩阵Q这样QQ' = X.谢谢你的帮助!

r matrix matrix-decomposition

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

Scala中的DateTime格式混淆

所以我在.csv文件中有以下数据(这只是前几行) -

time                  temp
2015-08-14 00:00:05   30.00
2015-08-14 00:00:15   31.25
2015-08-14 00:00:25   33.45
2015-08-14 00:00:35   34.76
2015-08-14 00:00:45   36.43
Run Code Online (Sandbox Code Playgroud)

然后我创建以下案例类 -

scala> case class Temps(time: org.joda.time.format.DateTimeFormat, temp: String)
Run Code Online (Sandbox Code Playgroud)

然后我的目标是通过创建解析函数来创建RDD

scala> def parse(line: String) = {
       val data = line.split(',')
       val time = data(0).????
       val temp= data(1).toString
       Temps(time, temp)
       }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我该把什么放在哪里?在上面?我不完全确定在这种情况下如何格式化DateTime.

scala jodatime apache-spark

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

如何在Spark(Scala)中组合两个RDD?

所以,假设我有以下两个RDDS :(这些只是每个RDD的前几行)

RDD1集:

Time                   Temp 
2014-08-12 13:20:00    22
2014-08-12 13:21:00    24
2014-08-12 13:24:00    26
2014-08-12 13:26:00    27
2014-08-12 13:28:00    22
Run Code Online (Sandbox Code Playgroud)

RDD2:

Time                   Age 
2014-08-12 13:20:00    45
2014-08-12 13:21:00    45
2014-08-12 13:24:00    46
2014-08-12 13:26:00    37
2014-08-12 13:28:00    122
Run Code Online (Sandbox Code Playgroud)

我想将它们组合起来,以便将RDD2列添加到RDD1中.我不能使用union,因为那只会将RDD2添加到RDD1的底部,而我想将它添加到"side",如果这是有道理的.

scala apache-spark

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