在下面的代码中,我将在嵌套列表中构建数据.在for循环之后,我想要尽可能整齐地将它转换为多维Numpy数组.但是,当我对它进行数组转换时,它似乎只将外部列表转换为数组.更糟糕的是,当我继续向下时,我最终将dataPoints作为形状(100L,)......所以列表数组中每个列表都是我的数据(显然我想要一个(100,3)).我也试过愚弄,numpy.asanyarray()但我似乎无法解决这个问题.如果可能的话,我真的很喜欢我的3D列表中的3d数组.如果没有,我如何将列表数组放入二维数组而不必迭代并将它们全部转换?
编辑:如果它使处理更容易,我也会从一开始就更好地构建数据.但是,它是通过串行端口进行的,并且事先不知道大小.
import numpy as np
import time
data = []
for _i in range(100): #build some list of lists
d = [np.random.rand(), np.random.rand(), np.random.rand()]
data.append([d,time.clock()])
dataArray = np.array(data) #now I have an array of lists of a list(of data) and a time
dataPoints = dataArray[:,0] #this is the data in an array of lists
Run Code Online (Sandbox Code Playgroud) 这是类似的,但不是这个问题代码完成例如Numpy,SciPy或Matplotlib在Eclipse PyDev中不起作用
我的问题不是PyDev无法将变量解析为它们的特定类型,我甚至无法让它查看函数的numpy模块.例如
import numpy as np
np.<ctrl+space>
Run Code Online (Sandbox Code Playgroud)
没有给我什么.这些模块在我的强制内置列表中.
自动完成功能适用于许多其他模块(包括Qt/qwt,serial,struct),程序运行正常.但是,每次我使用np.something eclipse都认为这是一个错误(它下面的红线).这对其他人"只是工作"吗?
编辑(附加信息):
我的错误日志中有错误.但是,它们是关于Java无权运行pylint和有关无效编码的投诉.我在Ubuntu 13.04上使用python 2.7运行Eclipse 3.8.1.从历史上看,我在Spyder中开发python,所以我所遗漏的任何东西都可能与Elipse的细微差别有关.
我在Windows中完成了大部分工作,并且设置了一个像我喜欢的好的python27.我最近安装了virtualBox并在其上运行了一个Ubuntu机器,我正在尝试安装PyQt4.我从apt-get安装并更新了所有内容,但是,当我尝试从PyQt4导入时
from PyQt4 import QtCore
Run Code Online (Sandbox Code Playgroud)
我得到一个runtimeError:
RuntimeError: the sip module implements API v9.0 to v9.1 but the PyQt4.QtCore module requires API v8.1
Run Code Online (Sandbox Code Playgroud)
我确信这是一个问题,我将在Windows中拥有知识库,但我的Linux缺乏经验在这里变得更好,我安装了错误的东西.这个错误让我相信我有一个对我的PyQt版本来说过于花哨的SIP版本......任何人都有这方面的经验吗?
编辑:如果我收到错误后再次尝试导入它似乎工作.这样做我获得了版本信息.
cfg.pyqt_version_str
Out[9]: '4.9.3'
cfg.sip_version_str
Out[10]: '4.14.3-snapshot-55188026fe6d'
Run Code Online (Sandbox Code Playgroud)
不确定快照业务的全部内容.