小编Cle*_*leb的帖子

不能将标量值用作数组

我正在尝试这段代码:

$rescntryvals[] = $rescntry;
$rescntry = "";
$resclkvalscntry[] = $rclick;
$rclick = "";
$resclkaddsnm[] = $addsnmame;
$addsnmame = "";
Run Code Online (Sandbox Code Playgroud)

但我明白了:

警告:不能将标量值用作数组

为什么?什么是解决方案?

php

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

Numpy.where函数找不到数组中的值...任何人都知道为什么?

我一直在尝试使用python的numpy.where函数来确定特定值的位置,但由于某种原因,它错误地确定False了实际找到值的位置.从而返回一个空数组.见下文:

>>>lbpoly=numpy.array([ 5.45  5.5   5.55  5.6   5.65  5.7   5.75  5.8   5.85  5.9   5.95  6.
6.05  6.1   6.15  6.2   6.25  6.3   6.35  6.4   6.45  6.5   6.55  6.6
6.65  6.7   6.75  6.8   6.85  6.9   6.95  7.  ])

>>>cpah=numpy.where(lbpoly==6.2)

>>>print cpah

>>>(array([], dtype=int32),)
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?我尝试了许多不同的变体,甚至使用<>逻辑.但这会产生2个值的指数.

python arrays numpy where

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

如何在python中计算1的对数减去给定小数的指数

我正在进行概率计算.我有很多非常小的数字,我想从1中减去所有数字,并且准确地这样做.我可以准确地计算出这些小数的对数.到目前为止,我的策略是这样的(使用numpy):

给定一个小数字的日志数组x,计算:

y = numpy.logaddexp.reduce(x)
Run Code Online (Sandbox Code Playgroud)

现在我想计算类似1-exp(y)甚至更好的东西log(1-exp(y)),但我不确定如何在不失去所有精度的情况下这样做.

实际上,即使是logaddexp功能也会遇到精确问题.矢量中的值x可以在-2到-800之间,甚至更负.y上面的向量基本上会有1e-16左右的整个数字部分,这是eps数据类型的数字.因此,例如,准确计算的数据可能如下所示:

In [358]: x
Out[358]: 
[-5.2194676211172837,
 -3.9050377656308362,
 -3.1619783292449615,
 -2.71289594096134,
 -2.4488395891021639,
 -2.3129210706827568,
 -2.2709987626652346,
 -2.3007776073511259,
 -2.3868404149802434,
 -2.5180718876609163,
 -2.68619816583087,
 -2.8849022632856958,
 -3.1092603032627686,
 -3.3553673369747834,
 -3.6200806272462351,
 -3.9008385919463073,
 -4.1955300857178379,
 -4.5023981074719899,
 -4.8199676154248081,
 -5.1469905756384904,
 -5.4824035553480428,
 -5.8252945959126876,
 -6.174877049340779,
 -6.5304687083067563,
 -6.8914750074202473,
 -7.25737538919104,
 -7.6277121540338797,
 -8.0020812775389558,
 -8.3801247986220773,
 -8.7615244716292437,
 -9.1459964426584435,
 -9.5332867613176404,
 -9.9231675781398394,
 -10.315433907978701,
 -10.709900863130784,
 -11.106401278287066,
 -11.50478366390567,
 -11.904910436107656,
 -12.30665638039909,
 -12.709907313918777,
 -13.114558916892051,
 -13.52051570882999,
 -13.927690148982549,
 -14.336001843810081,
 -14.745376846921289,
 -15.155747039147968,
 -15.567049578271309,
 -15.979226409456359,
 -16.39222382873956,
 -16.805992092998878,
 -17.22048507074976,
 -17.63565992888303,
 -18.051476851117201,
 -18.467898784496384,
 -18.884891210740903, …
Run Code Online (Sandbox Code Playgroud)

python math floating-point numpy scipy

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

Laravel - PHP致命错误:在migrate:refresh中找不到类'CreateMatchesTable'

最近我在本地清理了我的表格,这导致我删除了"匹配"表.我现在因此而在生产服务器上收到错误.

在本地,我跑了php artisan migrate:reset,删除了'CreateMatchesTable'文件然后php artisan migrate:refresh --seed.这在本地工作,然后我将我最近的构建推送到服务器.

现在,每当我php artisan migrate:refresh --seed在生产服务器上运行时,我都会遇到以下错误:

PHP Fatal error:  Class 'CreateMatchesTable' not found in
/home/forge/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php
on line 301
PHP Stack trace:
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException",
        "message":"Class 'CreateMatchesTable' not found","file":"\/home\/forge
         \/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Migrations\/
         Migrator.php","line":301}}
Run Code Online (Sandbox Code Playgroud)

我已经读过其他人经历过这种情况并且我已经尝试过composer dump-autoload- 但问题仍然存在.

此外,php artisan dump-autoload不幸的是,我提出了这个错误:

Generating optimized class loader
Compiling common classes

  [ErrorException]            
  Array to string conversion  

dump-autoload
Run Code Online (Sandbox Code Playgroud)

我已经删除了该站点并回滚了Laravel Forge上的迁移,但是,当它将最新版本提取到Forge时,会发生此错误!

laravel composer-php laravel-4 artisan artisan-migrate

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

如何仅删除字符串中单个单词的括号

假设我有一个这样的字符串:

s = '((Xyz_lk) some stuff (XYZ_l)) (and even more stuff (XyZ))'
Run Code Online (Sandbox Code Playgroud)

我想在单个单词周围删除括号,以便获得:

'(Xyz_lk some stuff XYZ_l) (and even more stuff XyZ)'
Run Code Online (Sandbox Code Playgroud)

我将如何在Python中执行此操作?到目前为止,我只是设法通过使用将文本与文本一起删除

re.sub('\(\w+\)', '', s)
Run Code Online (Sandbox Code Playgroud)

这使

'( some stuff ) (and even more stuff )'
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除括号并将文本保留在其中?

python regex

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

如何从多项式拟合中提取方程?

我的目标是将一些数据拟合到多项式函数,并获得包括拟合参数值的实际方程.

将此示例应用于我的数据,结果如预期.

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt

from sklearn.linear_model import Ridge
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline


x = np.array([0., 4., 9., 12., 16., 20., 24., 27.])
y = np.array([2.9,4.3,66.7,91.4,109.2,114.8,135.5,134.2])

x_plot = np.linspace(0, max(x), 100)
# create matrix versions of these arrays
X = x[:, np.newaxis]
X_plot = x_plot[:, np.newaxis]

plt.scatter(x, y, label="training points")

for degree in np.arange(3, 6, 1):
    model = make_pipeline(PolynomialFeatures(degree), Ridge())
    model.fit(X, y)
    y_plot = model.predict(X_plot)
    plt.plot(x_plot, y_plot, label="degree …
Run Code Online (Sandbox Code Playgroud)

python regression curve-fitting scikit-learn

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

使用Python高阶函数来操作列表

我已经列出了这个名单; 每个项目都是一个包含逗号(在某些情况下)和冒号(总是)的字符串:

dinner = [
    'cake,peas,cheese : No',
    'duck,broccoli,onions : Maybe',
    'motor oil : Definitely Not',
    'pizza : Damn Right',
    'ice cream : Maybe',
    'bologna : No',
    'potatoes,bacon,carrots,water: Yes',
    'rats,hats : Definitely Not',
    'seltzer : Yes',
    'sleeping,whining,spitting : No Way',
    'marmalade : No'
]
Run Code Online (Sandbox Code Playgroud)

我想从上面创建一个新列表,如下所示:

['cake : No',
 'peas : No',
 'cheese : No',
 'duck : Maybe',
 'broccoli : Maybe',
 'onions : Maybe',
 'motor oil : Definitely Not',
 'pizza : Damn Right',
 'ice cream : Maybe',
 'bologna : No',
 'potatoes …
Run Code Online (Sandbox Code Playgroud)

python reduce lambda

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

从向量创建矩阵,其中每行是向量的移位版本

我有一个像这样的numpy数组

import numpy as np

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

我想创建一个如下所示的数组:

array([[4, 1, 2, 3],
       [3, 4, 1, 2],
       [2, 3, 4, 1],
       [1, 2, 3, 4]])
Run Code Online (Sandbox Code Playgroud)

因此,每行对应于ar行指数+ 1的移位.

简单的实现可能如下所示:

ar_roll = np.tile(ar, ar.shape[0]).reshape(ar.shape[0], ar.shape[0])

for indi, ri in enumerate(ar_roll):
    ar_roll[indi, :] = np.roll(ri, indi + 1)
Run Code Online (Sandbox Code Playgroud)

这给了我想要的输出.

我的问题是,是否有一种更聪明的方法来避免循环.

python performance numpy vectorization

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

Python Pandas pandas 相关性 一列与全部

我试图获取数据帧的单个列和其余数字列之间的相关性,但我陷入困境。

我正在尝试这样做:

corr = IM['imdb_score'].corr(IM)
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

操作数无法与形状一起广播

我认为这是因为我试图找到向量(我的imdb_score列)与多列数据帧之间的相关性。

如何解决这个问题?

python correlation pandas

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

最有效的方法来汇总巨大的2D NumPy数组,按ID列分组?

我有一个海量数据阵列(500k行),看起来像:

id  value  score
1   20     20
1   10     30
1   15     0
2   12     4
2   3      8
2   56     9
3   6      18
...
Run Code Online (Sandbox Code Playgroud)

如您所见,左侧有一个非唯一ID列,第三列中有各种分数.

我希望快速添加按ID分组的所有分数.在SQL中,这看起来像SELECT sum(score) FROM table GROUP BY id

使用NumPy,我尝试迭代每个ID,按每个ID截断表,然后将该表的得分相加.

table_trunc = table[(table == id).any(1)]
score       = sum(table_trunc[:,2])
Run Code Online (Sandbox Code Playgroud)

不幸的是,我发现第一个命令是狗慢.有没有更有效的方法来做到这一点?

python numpy

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