我有一个列表,叫它test
,有3列,每列有891个元素,每个元素是一对浮点数。
我想创建一个有3列的numpy矩阵,每个列有891个元素,每个元素是浮点对的第一个条目。你知道吗
我有以下代码:
x = []
y = []
for i in range(len(test)):
for j in range(len(test[0])):
y.append(test[i][j][0])
x.append(y)
y = []
tt = numpy.matrix(x)
这很管用,但我能用一种更有效、更优雅的方式来写吗?你知道吗
编辑: 示例:
[0.5, 0.5],[0.3, 0.4],[0.1, 0.4]
[0.7, 0.6],[0.1, 0.4],[0.2, 0.3]
[0.2, 0.5],[0.6, 0.9],[0.3, 0.2]
[0.2, 0.5],[0.6, 0.9],[0.4, 0.1]
我想要:
[0.5, 0.3, 0.1]
[0.7, 0.1, 0.2]
[0.2, 0.6, 0.3]
[0.2, 0.6, 0.4]
要学习Python的两个特性:iterables和generator表达式。你知道吗
您没有给出示例数据,因此我们无法验证是否看到与您相同的行为。最好把你的问题放在我们的执行上。你知道吗
如果名称比
x
或test
更能描述意图,那就更好了。你知道吗有时(在本例中不是这样),您甚至不需要列表同时存在;您只需要遍历这些项,然后丢弃该序列。那么一个生成器表达式更好;有时间就去查那个表达式。你知道吗
请注意将这些视为提高可读性的选项。它们并不总是合适的,有时会使代码过于密集,难以阅读。你知道吗
就这么简单。有人可能会说,它的内存效率没有想象的那么高,因为您也在存储您不感兴趣的元素,至少是暂时的;但与嵌套python数据结构的内存使用相比,这就相形见绌了。你知道吗
相关问题 更多 >
编程相关推荐