删除数组结果中不必要的信息
remove uneccesary info in array outcome
任何人都可以启发为什么基于以下命令的结果不是预期的?
预期输出:
[1 6] ---> print(a) 应该 return 在数组中只显示值的位置
a = []
data = ['2007-01-03', '2007-01-04', '2007-01-05', '2007-01-08', '2007-01-09'
, '2007-01-10', '2007-01-11', '2007-01-12', '2007-01-16']
data1 = ['2007-01-04', '2007-01-11']
data = np.array(data)
data1 = np.array(data1)
for idx, day in enumerate(data1):
a.append(np.where(day == data))
print(a)
如果您想使用自己的代码,我可以说:
你有列表列表,你可以试试这个:
a.append(np.where(day == data)[0][0])
但您可以将 numpy.array
转换为 list
并使用 index
,如下所示:
print([data.tolist().index(day) for day in data1])
numpy
很慢你可以在下面看到 list
和 numpy
的运行时间:
%timeit ([data.tolist().index(day) for day in data1])
# 3.58 µs ± 123 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit for day in data1: a.append(np.where(day == data)[0][0])
# 8.47 µs ± 224 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
为此使用 numpy
有点矫枉过正,但您希望的正确输出是这样完成的:
for idx, day in enumerate(data1):
a.append(np.where(day == data)[0][0])
print(a)
那是因为 np.where
returns 索引结果的元组,而不仅仅是结果
您可以使用此代码:
a = []
data = ['2007-01-03', '2007-01-04', '2007-01-05', '2007-01-08', '2007-01-09'
, '2007-01-10', '2007-01-11', '2007-01-12', '2007-01-16']
data1 = ['2007-01-04', '2007-01-11']
data = np.array(data)
data1 = np.array(data1)
for idx, day in enumerate(data1):
a.append(np.where(day == data))
for i in range(len(a)): # Add this part of the code to get values
print(data[(a)[i]])
任何人都可以启发为什么基于以下命令的结果不是预期的?
预期输出: [1 6] ---> print(a) 应该 return 在数组中只显示值的位置
a = []
data = ['2007-01-03', '2007-01-04', '2007-01-05', '2007-01-08', '2007-01-09'
, '2007-01-10', '2007-01-11', '2007-01-12', '2007-01-16']
data1 = ['2007-01-04', '2007-01-11']
data = np.array(data)
data1 = np.array(data1)
for idx, day in enumerate(data1):
a.append(np.where(day == data))
print(a)
如果您想使用自己的代码,我可以说: 你有列表列表,你可以试试这个:
a.append(np.where(day == data)[0][0])
但您可以将 numpy.array
转换为 list
并使用 index
,如下所示:
print([data.tolist().index(day) for day in data1])
numpy
很慢你可以在下面看到 list
和 numpy
的运行时间:
%timeit ([data.tolist().index(day) for day in data1])
# 3.58 µs ± 123 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit for day in data1: a.append(np.where(day == data)[0][0])
# 8.47 µs ± 224 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
为此使用 numpy
有点矫枉过正,但您希望的正确输出是这样完成的:
for idx, day in enumerate(data1):
a.append(np.where(day == data)[0][0])
print(a)
那是因为 np.where
returns 索引结果的元组,而不仅仅是结果
您可以使用此代码:
a = []
data = ['2007-01-03', '2007-01-04', '2007-01-05', '2007-01-08', '2007-01-09'
, '2007-01-10', '2007-01-11', '2007-01-12', '2007-01-16']
data1 = ['2007-01-04', '2007-01-11']
data = np.array(data)
data1 = np.array(data1)
for idx, day in enumerate(data1):
a.append(np.where(day == data))
for i in range(len(a)): # Add this part of the code to get values
print(data[(a)[i]])