我有一个像
这样的数组的2D列表 array( [ 988, 389],
[ 986, 389],
[ 985, 388],
[ 977, 388],
[ 976, 387]], dtype=int32)
和另一个清单
array( [ 149.68299837],
[ 149.25481567],
[ 150.029997 ],
[ 148.63714206],
[ 149.48244044]])
我尝试使用
连接这两个列表 trail = list(map(list,zip(two_d_array,concat)))
trail = np.vstack(trail)
这给了我
array([array([988, 389], dtype=int32), array([ 149.68299837])],
[array([986, 389], dtype=int32), array([ 149.25481567])],
[array([985, 388], dtype=int32), array([ 150.029997])],
[array([977, 388], dtype=int32), array([ 148.63714206])],
[array([976, 387], dtype=int32), array([ 149.48244044])]], dtype=object)
如何删除所有数组和dtype,只显示
之类的数字 [ 988, 389,149.68299837],
[ 986, 389,149.25481567],
[ 985, 388, 150.029997],
[ 977, 388,148.63714206],
[ 976, 387,149.48244044]
答案 0 :(得分:0)
要对你的两个数组执行copy-n-paste,我必须在开始时使用[
结果是2个2d数组
In [165]: twod.shape
Out[165]: (5, 2)
In [166]: oned.shape
Out[166]: (5, 1)
一个简单的连接工作
In [164]: np.concatenate((twod, oned),axis=1)
Out[164]:
array([[ 988. , 389. , 149.68299837],
[ 986. , 389. , 149.25481567],
[ 985. , 388. , 150.029997 ],
[ 977. , 388. , 148.63714206],
[ 976. , 387. , 149.48244044]])
请注意,现在一切都是浮动的。
您的列表地图calc会生成如下列表:
[[array([988, 389]), array([ 149.68299837])],
[array([986, 389]), array([ 149.25481567])],
[array([985, 388]), array([ 150.029997])],
....
包含2个不同长度数组的子列表。用hstack
替换列表会生成一个可以被vstacked的列表
In [173]: temp = list(map(np.hstack, zip(twod, oned.ravel())))
In [174]: temp
Out[174]:
[array([ 988. , 389. , 149.68299837]),
array([ 986. , 389. , 149.25481567]),
array([ 985. , 388. , 150.029997]),
....
答案 1 :(得分:0)
我喜欢np.c_和np.column_stack(@Divakar建议),因为我对时间关注不多,但我更感兴趣的是它在视觉上“看起来”的理解目的......
-(void)sendError:(NSString*)message{
_errorMessage.stringValue = message;
_errorGeneration++;
NSUInteger capturedGeneration = _errorGeneration;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (_errorGeneration == capturedGeneration)
_errorMessage.stringValue = @"";
});
}
阵列a和b很明显。我只需要记住做np.c_方括号(np.c_ [stack these],当然,逐列堆栈对我来说也是有意义的。