python - Numpy isclose for Arrays - TypeError:未为此类型实现
问题描述
我有 2 个 .csv (.tsv) 表,我将它们加载到数组中。现在我想通过 numpy isclose 函数比较这两个数组的每个单元格。
它适用于普通数字,但不适用于我的数组。
with open(filename) as csv_file:
reader = csv.reader(csv_file, delimiter='\t')
for row in reader:
point.append(row[0])
with open(filename2) as csv_file:
reader = csv.reader(csv_file, delimiter='\t')
for row in reader:
point2.append(row[0])
print(numpy.isclose(point,point2, atol=0.01))
错误:
print(numpy.isclose(point,point2, atol=0.01))
File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 2306, in isclose
xfin = isfinite(x)
TypeError: Not implemented for this type
即使我尝试从数组中直接输入(例如点 [3]、点 2 [3]),我还是会出错。
解决方案
csv.reader
读取字符串——你最终得到两个字符串列表。
当您阅读这些行时,您可能希望将这些值转换为float
(或者如果您需要更精确的其他内容)。
with open(filename) as csv_file:
reader = csv.reader(csv_file, delimiter='\t')
point1 = [float(row[0]) for row in reader]
with open(filename2) as csv_file:
reader = csv.reader(csv_file, delimiter='\t')
point2 = [float(row[0]) for row in reader]
print(numpy.isclose(point1, point2, atol=0.01))
推荐阅读
- python - 在目录中创建文件
- flutter - Flutter:在日历上自定义颜色
- javascript - 如何在 PHP/Javascript 中转义双引号、双引号内、单引号内?
- android - Coroutinescope 启动但数据未更新
- android - 协程解释
- android-studio - Android Studio 无法找到 adb & 只能使用 skd gphone x86 作为 AVD
- glsl - WebGL2:不同着色器中的相同功能
- macros - 为什么 C(++) 预处理器允许定义宏但不检查它是否未定义?
- python - 试图让精灵在一定时间后从屏幕上消失
- makefile - 如何在 Makefile 中定义自动变量的先决条件?