当前位置: 首页 > 面试题库 >

TypeError:无法散列的类型:'numpy.ndarray'

萧安怡
2023-03-14
问题内容

从一个包含三列数据的文本文件中,我希望能够slice从第一列中的值等于中定义的值的所有三列中获取一个数据above。然后,我想将数据切片放入一个名为slice(我正在使用
Python 2.7 )的新数组中

above = range(18000, 18060, 5)

data = np.loadtxt(open('data.txt'), delimiter=None)

energies = (np.hsplit(data, 3))[0]

slice = set(energies)&set(above)

以上返回:

Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    set(energies)&set(above)
TypeError: unhashable type: 'numpy.ndarray

问题答案:

您的变量energies的形状可能不正确:

>>> from numpy import array
>>> set([1,2,3]) & set(range(2, 10))
set([2, 3])
>>> set(array([1,2,3])) & set(range(2,10))
set([2, 3])
>>> set(array([[1,2,3],])) & set(range(2,10))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'numpy.ndarray'

如果使用这种方法读取列数据,就会发生以下情况:

>>> data
array([[  1.,   2.,   3.],
       [  3.,   4.,   5.],
       [  5.,   6.,   7.],
       [  8.,   9.,  10.]])
>>> hsplit(data,3)[0]
array([[ 1.],
       [ 3.],
       [ 5.],
       [ 8.]])

也许你可以简单地使用

>>> data[:,0]
array([ 1.,  3.,  5.,  8.])

代替。

(PS您的代码看起来像它的犹豫不决它是否data还是elementdata。我认为它只是一个错字。)



 类似资料:
  • 问题内容: 我有一个包含多个列表作为其元素的列表 如果我使用内置的set函数从此列表中删除重复项,则会收到错误消息 我正在使用的代码是 TopP是一个列表,就像上面的eg一样 set()的这种用法是否错误?还有其他方法可以对以上列表进行排序吗? 问题答案: 集要求其项是可 哈希的 。在Python预定义的类型中,只有不可变的类型(例如字符串,数字和元组)是可哈希的。可变类型(例如列表和字典)不可散

  • 问题内容: 我有这段代码: 当我运行该代码时,出现以下错误: TypeError:无法散列的类型:’dict’ 该错误的原因是什么,我该怎么解决? 问题答案: 从错误中,我推断这是一个字典(请参阅下面的repro)。字典不能被散列,因此不能用作另一个字典的键(或本身就是这个键!)。 您可能意思是或。如果这两种解决方案都不起作用,那么在有关什么类型和是什么以及它们包含什么的更多上下文中,我们将能够为

  • 问题内容: 我有这段代码: 当我运行该代码时,出现以下错误: TypeError:无法散列的类型:’dict’ 该错误的原因是什么,我该怎么办才能解决? 问题答案: 从错误中,我推断出它是字典(请参阅下面的repro)。字典不能被散列,因此不能用作另一个字典的键(或本身就是该键!)。 您可能意思是或。如果这两种解决方案都不起作用,则可以通过更多上下文了解什么是类型以及它们包含什么,我们将能够为您提

  • vector 通过整型索引来存储值,而 HashMap (散列表)通过键(key)来存储值。HashMap 的键可以是布尔型、整型、字符串,或任意实现了 Eq 和 Hash trait 的其他类型。在下一节将进一步介绍。 和 vector 类似,HashMap 也是可增长的,但 HashMap 在空间多余时能够缩小自身(原文:HashMaps can also shrink themselves

  • 我有一个模板结构。struct foo有嵌套类型。 我想使指针可哈希,这将适合

  • 我有一个的值为 我想返回 的数据帧 我最初试图将数据帧转换成数据集并映射数据集。但是,我无法用MurmurHash3重现散列。总之我是无法再现https://github . com/Apache/spark/blob/master/SQL/core/src/main/Scala/org/Apache/spark/SQL/functions . Scala # l 2165-l 2168。 对如何