无法将 numpy 数组转换为类型:float from type:Object 尽管数据具有相同的维度
Cannot convert numpy array to type: float from type : Object despite the data being of same dimension
我正在尝试为 LSMT 层输入预处理数据。 numpy 数组由 245 个 .npy 文件组成,每个文件在 72 个文件夹中。每个 .npy 文件都有一个长度为 100 的一维数组。(已经过双重检查)。
我从每个 .npy 文件读取数据并将其附加到数组的方式如下:
for action in actions:
for root, subdirectories, filenames in (sorted(os.walk(directory_2))):
window = []
filenames = natsorted(filenames)
for filename in range(sequence_length):
res=np.load(os.path.join(directory_2, "{}.npy".format(filename)))
window.append(res)
sequences.append(window)
labels.append(label_map[action])
检查 res、window 和序列数据类型,我得到以下结果
#Input print(res.dtype)
#Output float64
#Input type(window)
#Output list
#Input type(sequences)
#Output list
检查 res 的输出以验证是否已从 .npy 文件中正确读取数据
#Input print(res)
#Output [13. 14. 17. 17. 18. 19. 19. 20. 21. 21. 21. 21. 22. 22. 22. 22. 23. 23.
23. 23. 23. 23. 25. 25. 25. 26. 26. 26. 26. 26. 26. 26. 27. 27. 27. 27.
27. 28. 28. 28. 28. 28. 29. 29. 29. 29. 29. 30. 30. 30. 30. 30. 30. 30.
30. 30. 30. 31. 31. 31. 31. 31. 32. 32. 32. 32. 33. 33. 33. 33. 33. 33.
33. 33. 33. 34. 34. 34. 34. 34. 34. 34. 34. 34. 35. 35. 36. 36. 36. 36.
36. 36. 36. 36. 37. 37. 37. 37. 38. 38.]
#Input len(res)
#Output 100
然后我继续保存序列变量 X 如下
X = np.array(sequences)
查看 X 的输出我得到一个 dtype=object
#INPUT X.view()
#OUTPUT
array([[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
...,
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])]], dtype=object)
现在,如果我继续检查 X 的形状和类型,我会得到以下结果
#Input X.shape
#Output (72, 245)
#Inpiut X.dtype
#Output dtype('O')
这是出现问题的时候。然后我尝试使用以下方法将 X 转换为 float 类型,但是 Whosebug 先前解决方案中列出的 none 方法有效
1. #Input X=np.asarray(X)
#Output dtype remains as ('O')
2. #Input X=X.astype('float64')
#Output ValueError: setting an array element with a sequence.
3. #Input X=X.astype(int)
#Output ValueError: setting an array element with a sequence.
4. #Input X=np.hstack(X)
#Output dtype remains as ('O')
5. #Input X=np.vstack(X)
#Output dtype remains as ('O')
以防万一有人有兴趣知道我实际上是如何生成数据的,下面是代码。我只是使用 BF Matcher 为不同的图像收集关键点并将它们存储为 .npy 文件。此代码还确保保存的 .npy 文件的 none 小于或大于长度 100。
if len(matches) > MIN_MATCHES:
frame = cv2.drawMatches(model, kp_model, frame, kp_frame, matches[:50], 0, flags=2)
dist=[]
for m in matches:
dist.append(m.distance)
dist_np = np.array(dist).flatten()
else:
print("Not enough matches found - %d/%d" % (len(matches), MIN_MATCHES))
dist=[]
for m in matches:
dist.append(m.distance)
dist_np = np.array(dist).flatten()
array_len = np.array(dist_np).size
max_len = 100
if array_len > max_len:
dist_np = dist_np[:-(array_len - max_len)]
else:
dist_np = [np.pad(dist_np, (0, max_len - array_len), 'constant')]
print(loop)
print(filename)
action = action = Path(filename).stem.split('_')[1]
npy_path = os.path.join(DATA_PATH, action, str(loop))
np.save(npy_path, dist_np)
你的数据实际上不是同一个维度。
dist_np = [np.pad(dist_np, (0, max_len - array_len), 'constant')]
删除列表括号,它使数组为 1x100,而不仅仅是 100,
或者,只需在从磁盘读取数组时展平数组,方法是在从磁盘读取它的行之后添加它。
res = res.flatten()
我正在尝试为 LSMT 层输入预处理数据。 numpy 数组由 245 个 .npy 文件组成,每个文件在 72 个文件夹中。每个 .npy 文件都有一个长度为 100 的一维数组。(已经过双重检查)。
我从每个 .npy 文件读取数据并将其附加到数组的方式如下:
for action in actions:
for root, subdirectories, filenames in (sorted(os.walk(directory_2))):
window = []
filenames = natsorted(filenames)
for filename in range(sequence_length):
res=np.load(os.path.join(directory_2, "{}.npy".format(filename)))
window.append(res)
sequences.append(window)
labels.append(label_map[action])
检查 res、window 和序列数据类型,我得到以下结果
#Input print(res.dtype)
#Output float64
#Input type(window)
#Output list
#Input type(sequences)
#Output list
检查 res 的输出以验证是否已从 .npy 文件中正确读取数据
#Input print(res)
#Output [13. 14. 17. 17. 18. 19. 19. 20. 21. 21. 21. 21. 22. 22. 22. 22. 23. 23.
23. 23. 23. 23. 25. 25. 25. 26. 26. 26. 26. 26. 26. 26. 27. 27. 27. 27.
27. 28. 28. 28. 28. 28. 29. 29. 29. 29. 29. 30. 30. 30. 30. 30. 30. 30.
30. 30. 30. 31. 31. 31. 31. 31. 32. 32. 32. 32. 33. 33. 33. 33. 33. 33.
33. 33. 33. 34. 34. 34. 34. 34. 34. 34. 34. 34. 35. 35. 36. 36. 36. 36.
36. 36. 36. 36. 37. 37. 37. 37. 38. 38.]
#Input len(res)
#Output 100
然后我继续保存序列变量 X 如下
X = np.array(sequences)
查看 X 的输出我得到一个 dtype=object
#INPUT X.view()
#OUTPUT
array([[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
...,
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])],
[array([ 5., 6., 7., 7., 8., 8., 8., 9., 9., 9., 9., 10., 10.,
10., 11., 11., 11., 12., 13., 13., 13., 13., 13., 13., 14., 14.,
14., 14., 14., 14., 14., 15., 15., 15., 15., 15., 15., 15., 15.,
15., 15., 15., 15., 15., 15., 15., 16., 16., 16., 16., 16., 16.,
16., 16., 17., 17., 17., 17., 17., 17., 17., 17., 17., 17., 18.,
18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18., 18.,
18., 18., 18., 19., 19., 19., 19., 19., 19., 19., 19., 19., 19.,
19., 19., 20., 20., 20., 20., 20., 20., 20.]),
array([[ 5., 6., 8., 9., 10., 10., 11., 13., 13., 14., 17., 27., 27.,
28., 30., 32., 33., 35., 35., 37., 41., 42., 43., 45., 45., 45.,
45., 52., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.]]),
array([ 2., 4., 5., 5., 6., 6., 7., 7., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10., 10.,
10., 10., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11., 12.,
12., 12., 12., 12., 12., 12., 12., 13., 13., 13., 13., 13., 13.,
13., 13., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14., 14.,
14., 15., 15., 15., 15., 15., 15., 15., 15., 15., 16., 16., 16.,
16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16., 16.,
17., 17., 17., 17., 17., 17., 17., 17., 18.]),
...,
array([14., 15., 15., 16., 16., 16., 16., 17., 17., 18., 18., 18., 18.,
19., 19., 19., 20., 20., 21., 21., 21., 22., 22., 22., 22., 22.,
23., 23., 23., 23., 23., 24., 24., 24., 24., 24., 24., 25., 25.,
25., 25., 26., 26., 26., 26., 26., 26., 26., 27., 27., 27., 27.,
27., 27., 28., 28., 28., 28., 28., 28., 28., 28., 28., 29., 29.,
29., 29., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30., 31.,
31., 31., 31., 31., 32., 32., 32., 32., 32., 32., 33., 33., 33.,
33., 33., 34., 34., 34., 34., 34., 34., 34.]),
array([ 4., 5., 5., 5., 6., 6., 6., 6., 7., 7., 7., 7., 7.,
7., 7., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8., 8.,
8., 8., 9., 9., 9., 9., 9., 9., 9., 10., 10., 10., 10.,
10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 11.,
11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11., 11.,
11., 11., 11., 11., 12., 12., 12., 12., 12., 12., 13., 13., 13.,
13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 13., 14.,
14., 14., 14., 14., 14., 14., 14., 14., 14.]),
array([13., 14., 17., 17., 18., 19., 19., 20., 21., 21., 21., 21., 22.,
22., 22., 22., 23., 23., 23., 23., 23., 23., 25., 25., 25., 26.,
26., 26., 26., 26., 26., 26., 27., 27., 27., 27., 27., 28., 28.,
28., 28., 28., 29., 29., 29., 29., 29., 30., 30., 30., 30., 30.,
30., 30., 30., 30., 30., 31., 31., 31., 31., 31., 32., 32., 32.,
32., 33., 33., 33., 33., 33., 33., 33., 33., 33., 34., 34., 34.,
34., 34., 34., 34., 34., 34., 35., 35., 36., 36., 36., 36., 36.,
36., 36., 36., 37., 37., 37., 37., 38., 38.])]], dtype=object)
现在,如果我继续检查 X 的形状和类型,我会得到以下结果
#Input X.shape
#Output (72, 245)
#Inpiut X.dtype
#Output dtype('O')
这是出现问题的时候。然后我尝试使用以下方法将 X 转换为 float 类型,但是 Whosebug 先前解决方案中列出的 none 方法有效
1. #Input X=np.asarray(X)
#Output dtype remains as ('O')
2. #Input X=X.astype('float64')
#Output ValueError: setting an array element with a sequence.
3. #Input X=X.astype(int)
#Output ValueError: setting an array element with a sequence.
4. #Input X=np.hstack(X)
#Output dtype remains as ('O')
5. #Input X=np.vstack(X)
#Output dtype remains as ('O')
以防万一有人有兴趣知道我实际上是如何生成数据的,下面是代码。我只是使用 BF Matcher 为不同的图像收集关键点并将它们存储为 .npy 文件。此代码还确保保存的 .npy 文件的 none 小于或大于长度 100。
if len(matches) > MIN_MATCHES:
frame = cv2.drawMatches(model, kp_model, frame, kp_frame, matches[:50], 0, flags=2)
dist=[]
for m in matches:
dist.append(m.distance)
dist_np = np.array(dist).flatten()
else:
print("Not enough matches found - %d/%d" % (len(matches), MIN_MATCHES))
dist=[]
for m in matches:
dist.append(m.distance)
dist_np = np.array(dist).flatten()
array_len = np.array(dist_np).size
max_len = 100
if array_len > max_len:
dist_np = dist_np[:-(array_len - max_len)]
else:
dist_np = [np.pad(dist_np, (0, max_len - array_len), 'constant')]
print(loop)
print(filename)
action = action = Path(filename).stem.split('_')[1]
npy_path = os.path.join(DATA_PATH, action, str(loop))
np.save(npy_path, dist_np)
你的数据实际上不是同一个维度。
dist_np = [np.pad(dist_np, (0, max_len - array_len), 'constant')]
删除列表括号,它使数组为 1x100,而不仅仅是 100, 或者,只需在从磁盘读取数组时展平数组,方法是在从磁盘读取它的行之后添加它。
res = res.flatten()