TypeError:ufunc'sundract'不包含带签名匹配类型的循环dtype('<U1')dtype('<U1')dtype('<U1')

Gre*_*ton 18 numpy matplotlib python-unicode

在尝试获取微小玩具数据集的直方图时,来自numpy的奇怪错误来自matplotlib.我只是不确定如何解释错误,这使得很难看到下一步该做什么.

虽然这个nltk问题这个gdsCAD问题在表面上是相似的,但没有找到太多相关内容.

我打算在底部调试信息比驱动程序代码更有帮助,但如果我错过了什么,请询问.这可以作为现有测试套件的一部分重现.

        if n > 1:
            return diff(a[slice1]-a[slice2], n-1, axis=axis)
        else:
>           return a[slice1]-a[slice2]
E           TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('<U1') dtype('<U1') dtype('<U1')

../py2.7.11-venv/lib/python2.7/site-packages/numpy/lib/function_base.py:1567: TypeError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> py2.7.11-venv/lib/python2.7/site-packages/numpy/lib/function_base.py(1567)diff()
-> return a[slice1]-a[slice2]
(Pdb) bt
[...]
py2.7.11-venv/lib/python2.7/site-packages/matplotlib/axes/_axes.py(5678)hist()
-> m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs)
  py2.7.11-venv/lib/python2.7/site-packages/numpy/lib/function_base.py(606)histogram()
-> if (np.diff(bins) < 0).any():
> py2.7.11-venv/lib/python2.7/site-packages/numpy/lib/function_base.py(1567)diff()
-> return a[slice1]-a[slice2]
(Pdb) p numpy.__version__
'1.11.0'
(Pdb) p matplotlib.__version__
'1.4.3'
(Pdb) a
a = [u'A' u'B' u'C' u'D' u'E']
n = 1
axis = -1
(Pdb) p slice1
(slice(1, None, None),)
(Pdb) p slice2
(slice(None, -1, None),)
(Pdb)
Run Code Online (Sandbox Code Playgroud)

Muh*_*nat 7

我遇到了同样的错误,但就我而言,我是从dict.value中减去dict.key。我已经通过从其他dict.value中减去对应键的dict.value来解决此问题。

cosine_sim = cosine_similarity(e_b-e_a, w-e_c)
Run Code Online (Sandbox Code Playgroud)

在这里我得到了错误,因为e_b,e_a和e_c分别嵌入了单词a,b,c的向量。我不知道'w'是字符串,当我找出w是字符串时,我通过以下代码来解决:

cosine_sim = cosine_similarity(e_b-e_a, word_to_vec_map[w]-e_c)
Run Code Online (Sandbox Code Playgroud)

现在我没有减去dict.key,而是减去了key的对应值。


hpa*_*ulj 5

为什么它适用diff于字符串数组。

我在同一点收到错误,但有不同的消息

In [23]: a=np.array([u'A' u'B' u'C' u'D' u'E'])

In [24]: np.diff(a)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-9d5a62fc3ff0> in <module>()
----> 1 np.diff(a)

C:\Users\paul\AppData\Local\Enthought\Canopy\User\lib\site-packages\numpy\lib\function_base.pyc in diff(a, n, axis)
   1112         return diff(a[slice1]-a[slice2], n-1, axis=axis)
   1113     else:
-> 1114         return a[slice1]-a[slice2]
   1115 
   1116 

TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray' 
Run Code Online (Sandbox Code Playgroud)

这个a数组是bins参数吗?文档说bins应该是什么?


col*_*ter 5

我遇到了类似的问题,我正在迭代的 DataFrame 行中的整数类型为numpy.int64。我拿到

TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('<U1') dtype('<U1') dtype('<U1')

尝试从中减去浮点数时出错。

对我来说最简单的解决方法是使用 转换行pd.to_numeric(row)