Python 如何从数组列表中删除小于某个数字的值?

Python 如何从数组列表中删除小于某个数字的值?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一个数据集,它是数组列表。每个阵列都是30秒的试验,每个阵列中都有30秒以上试验中发生的事件的时间列表。例如,一个数组将是[0.2,3,5,6.2,…29.99] 我只想使用eventplot绘制每个试验前10秒发生的事件。这就是我尝试过的: plt.eventplot(测试峰值[测试峰值Try [d

我有一个数据集,它是数组列表。每个阵列都是30秒的试验,每个阵列中都有30秒以上试验中发生的事件的时间列表。例如,一个数组将是[0.2,3,5,6.2,…29.99]

我只想使用eventplot绘制每个试验前10秒发生的事件。这就是我尝试过的:

plt.eventplot(测试峰值[测试峰值Try

[d<10时数据中的d代表d]

您必须首先转换为numpy数组:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.uniform(low=0.5, high=20,size=(50,))
# data = np.array(data) # not necessary as it is a numpy array
print(data.shape)   # (50,)
plt.eventplot(data[data<10])
将numpy导入为np
将matplotlib.pyplot作为plt导入
数据=np.random.uniform(低=0.5,高=20,大小=(50,)
#data=np.array(data)#不需要,因为它是一个numpy数组
打印(数据.形状)#(50,)
plt.eventplot(data[data由于您有一个数组列表(我假设是)
numpy
,您需要分别对每个数组执行比较。错误消息试图告诉您这一点;外部列表不是numpy数组,因此不支持与整数进行比较

to_plot = [x[x<10] for x in test_spikes]

因此,对于我标题为test_spikes的数据,它将是plt.eventplot(test_spikes for test_spikes in test_spikes if test_spikes no,eventplot([t for t in test_spikes if t<10]),这会导致错误“具有多个元素的数组的真值不明确。请使用a.any()或a.all()对于这个问题,请搜索网站;有许多重复的问题。@applej7你的
数据是什么样子的。
我以你的问题为例。因为代码没有任何arror。但是如果你有其他类型的列表,请共享。@CodePope谢谢你的回答!我导入的数据如下:'data=np.load'('class5_data.npz',allow_pickle=True)test_spikes=data['test_spikes'].tolist(),我正在尝试对test_spikes执行eventplot函数。我只是在原始问题中将其简化为数据以及
数据的形状是什么?顺便说一句,您不需要将其转换为列表(
tolist
)。直接使用您刚刚使用
np.load导入的numpy数组总是更好。在python
列表中列出的许多任务中,numpy的速度要快得多。“我不确定我做错了什么”。好吧,错误消息说你想比较什么?一个
列表
和一个
int
,是吗?使用
嗨,卡尔,谢谢你的回答。我对编码非常陌生,所以我有点不清楚你的意思。我的理解是,我拥有的数据是一个数组列表,每个数组包含的浮点值都小于30。我导入将数据从如下位置删除:
data=np.load('class5_data.npz',allow_pickle=True)test_spikes=data['test_spikes']].tolist()
。正确;您应该使用一个(二维)数组。首先不要使用它。
test_spikes = [np.array(x) for x in test_spikes]