【发布时间】:2018-03-13 14:49:05
【问题描述】:
我有以下实现,将 CSV 文件转换为一行 numpy 数组:
results = []
with open(file2) as csvfile:
reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
# change contents to floats
for row in reader: # each row is a list
results.append(row)
print(numpy.percentile(results, perc, axis = None))
perc_value = numpy.percentile(results, perc, axis = None)
现在的想法是,基于用户提供的返回某个值的百分位数 - 比如说 100,我想从数组中删除所有低于 100 的条目。
so example results is [1, 50, 200, 500, 1000, 2000]
perc_value = 100
end result should be [200, 500, 1000, 2000]
我尝试了多次尝试,但要么我收到一个布尔错误,要么是该条件不能应用于列表,有什么想法吗?
我尝试了以下操作:
for i in range (len(results)):
if results[i] > perc_value: results.pop(i)
print (results)
错误信息: ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
【问题讨论】:
-
你能分享你试过的代码和错误信息吗?
-
请edit问题并将您正确格式化的代码粘贴到那里。
-
完成,已编辑,谢谢!
-
试试
results[numpy.where(result > perc_value)] -
TypeError 出现以下类型错误:列表索引必须是整数或切片,而不是元组
标签: python arrays numpy boolean