【发布时间】:2020-12-12 02:54:47
【问题描述】:
我有 4 个点组,每个点组包含 5 个不同的 3D 位置。我的目标是在不重复顺序的情况下为每个组强制所有可能的四个排列并将它们打印为(5x3)array。例如。对于输入数据:
1,2,3
4,5,6
7,8,9
10,11,12
13,14,15
16,17,18
19,20,21
22,23,24
25,26,27
28,29,30
31,32,33
34,35,36
37,38,39
40,41,42
43,44,45
46,47,48
49,50,51
52,53,54
55,56, 57
58,59,60
我读了文件:
def read_file(name):
with open(name, 'r') as f:
data = []
for line in f:
l = line.strip()
cols = [float(i) for i in line.split(',')]
data.append(cols)
return np.array(data)
并重塑它以使 4x(5x3) 数组被暴力破解:
def main():
filePath= 'C:/Users/retw/input.txt'
data = read_file(filePath)
print('data:', data, type(data), data.shape)
reshapedData = data.reshape(4, 5, 3)
print('reshapedData :', reshapedData, type(reshapedData), reshapedData.shape)
当前输出如下:
respahedData: [[[ 1. 2. 3.]
[ 4. 5. 6.]
[ 7. 8. 9.]
[10. 11. 12.]
[13. 14. 15.]]
[[16. 17. 18.]
[19. 20. 21.]
[22. 23. 24.]
[25. 26. 27.]
[28. 29. 30.]]
[[31. 32. 33.]
[34. 35. 36.]
[37. 38. 39.]
[40. 41. 42.]
[43. 44. 45.]]
[[46. 47. 48.]
[49. 50. 51.]
[52. 53. 54.]
[55. 56. 57.]
[58. 59. 60.]]] <class 'numpy.ndarray'> (4, 5, 3)
在蛮力之后,排列为数组或列表应如下所示:
[[1,2,3]
[16,17,18]
[31,32,33]
[46,47,48]]
[[1,2,3]
[19,20,21]
[31,32,33]
[46,47,48]]
[[1,2,3]
[22,23,24]
[31,32,33]
[46,47,48]]
etc,
直到
[[13,14,15]
[28,29,30]
[43,44,45]
[58,59,60]]
编辑
对于给定的两个4x3 数组作为输入:
[[[1,2,3]
[4,5,6]]
[7,8,9]
[10,11,12]]]
暴力破解后的输出应该是:
[[1,2,3]
[7,8,9]]
[[1,2,3]
[10,11,12]]
[[4,5,6]
[7,8,9]]
[[4,5,6]
[10,11,12]]
【问题讨论】:
-
您尝试创建的值的名称和括号符号非常令人困惑。我不知道在这种情况下什么是“组合”,你也没有以我能理解的任何方式解释它,所以我什至无法开始帮助你。如果您正在处理 numpy 数组,请显示实际数组,而不是伪代码废话。
-
我编辑了我的问题以简化我的问题
标签: python python-3.x