从一个包含三列数据的文本文件中,我希望能够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。 对如何