首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在矩阵中使用3个向量作为列

在矩阵中使用3个向量作为列
EN

Stack Overflow用户
提问于 2014-11-20 09:28:52
回答 3查看 38关注 0票数 0

我意识到这应该很容易,但我有一个很大的数据集(14k点),而且我的新编码方式有内存问题。

所以。我有三个有序列表,xnew是x坐标,ynew是y坐标,znew是z坐标。我想要一个数组,其中每行是一个点,有三列,分别是x,y和z。首先,我尝试了一下:

代码语言:javascript
代码运行次数:0
运行
复制
points = []    
for point_number in range(len(xnew)):
    points.append((xnew[point_number], ynew[point_number], 
                  znew[point_number]))
    xyz_out = np.array(points)

它只适用于我的一小部分数据,但不适用于整个数据。

现在,我有这样的想法:

代码语言:javascript
代码运行次数:0
运行
复制
xyz_out = np.array([xnew, ynew, znew])
xyz_out.transpose((1, 0))
return xyz_out

出于某种原因,它不会转置我的数据,尽管它看起来应该是转置文档中的数据。有什么建议吗?

EN

回答 3

Stack Overflow用户

发布于 2014-11-20 11:10:15

试试column_stack

代码语言:javascript
代码运行次数:0
运行
复制
xyz = np.column_stack((xnew, ynew, znew))
票数 1
EN

Stack Overflow用户

发布于 2014-11-20 09:32:16

创建矩阵的另一种方法是利用内置的zip函数:

代码语言:javascript
代码运行次数:0
运行
复制
In [1]: import numpy as np
In [2]: xnew, ynew, znew = range(1000), range(1000), range(1000)
In [3]: xyz = np.array(zip(xnew, ynew, znew))
In [4]: xyz[1, :]
Out[4]: array([1, 1, 1])
In [5]: xyz[2, :]
Out[5]: array([2, 2, 2])

zip会将每个坐标向量的第i个值分组到元组中,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
>>> zip(xnew, ynew, znew)[0]
(0, 0, 0)

这使得转换成numpy.array变得很容易。

票数 0
EN

Stack Overflow用户

发布于 2014-11-20 10:06:31

大多数numpy方法只返回一个视图,不会就地修改对象。有关更多详细信息,请参阅this question和其他许多网站。考虑一下:

代码语言:javascript
代码运行次数:0
运行
复制
import numpy as np
xnew, ynew, znew = range(1000), range(1000), range(1000)
xyz_out = np.array([xnew, ynew, znew])
xyz_out.transpose((1, 0))

最后一行只提供了xyz_out数组转置的视图。您可以将其分配给:

代码语言:javascript
代码运行次数:0
运行
复制
xyz_out = xyz_out.transpose((1, 0))

现在它可以工作了。在像您这样的2D情况下,只需编写xyz_out = xyz_out.T进行转置即可。

numpy转置也比zip快4到5倍。

代码语言:javascript
代码运行次数:0
运行
复制
%%timeit
xyz_out = np.array([xnew, ynew, znew])
xyz_out = xyz_out.T

%%timeit
xyz_out = np.array(zip(xnew, ynew, znew))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27030218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档