我想减去一个一维数组:
probe = [1, 2, 3, 4, 5, 6]
从nd数组中的每个元素:
k = np.array([["words words ", 1,1,3,4,6,7], ["blah blah", 2,8,7,5,3,2], [" please help me", 3,4, 5, 6, 7,1], [" What are you doing, man", 1,3,5,10,9,11]])
我删除了k数组的第0个索引,并将这些值存储在新的k中,以便现在比较的是我要比较的两个数组中的值。你知道吗
new_k = k
new_k = np.delete(new_k, 0, axis=1)
我正试图在nd数组中找到最接近输入的值。我需要帮助。你知道吗
到目前为止,我设法到了这里,但我迷路了
for i in range(len(new_k)):
for j in range(len(new_k[0][1])):
temp[j] = (new_k[1][j] - probe[j])
new_k[i][1] = temp
print(new_k)
new_k2 = new_k*new_k
上面的代码引发此错误:
TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('<U32') dtype('<U32') dtype('<U32')
另外:我知道如何通过比较单个值和一个值数组来获得“最接近的值”,但我想通过数组对数组来实现这一点
Numpy数组并不意味着有多种数据类型。
k
实际上是一个字符串数组,因此在数组k
中没有要减去的数字数据类型。你知道吗如果您想保留第一列字符串,您应该查看pandas数据帧。您可以保留字符串作为数据帧的索引,但仍然将其作为数字数据数组进行操作。使用数据,可以执行以下操作:
问题是numpy不像一个普通的列表,它一次只保存唯一的类型元素。如果有多个类型,则所有类型都转换为
U32
,即string
。当您从列表中删除第一个元素时,其余元素仍然是字符串类型,而不是int。您应该将它们转换为int
。因此,这个错误引发了:当您尝试此操作时:
相关问题 更多 >
编程相关推荐