这是我的一段代码
一切都是一个笨拙的阵列。我也欢迎使用列表进行操作。
a = [1,2,3,4,5]
b = [3,2,2,2,8]
c = ['test1', 'test2', 'test3','test4','test5']
预期结果:
d = [ 1, 2, 3, 4, 5;
3, 2, 2, 2, 8;
'test1','test2', 'test3', 'test4','test5' ]
OR
d = [ 1 3 'test1';
2 2 'test2';
3 2 'test3';
4 2 'test4';
5 8 'test5']
答案 0 :(得分:0)
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
[3, 4],
[5, 6]])
答案 1 :(得分:0)
使用numpy.concat
的Adam answer也是正确的,但就指定您期望的确切形状 - 垂直堆叠的行 - 而您想要查看{{ 3}}:
>>> import numpy as np
>>> np.vstack([a, b, c])
array([['1', '2', '3', '4', '5'],
['3', '2', '2', '2', '8'],
['test1', 'test2', 'test3', 'test4', 'test5']],
dtype='<U21')
除此之外,您可以采用以下方式:由于您的单独数组(int64
,int64
,<U5
)全部放在一起,新的array将自动使用限制性最小的类型,在本例中为unicode类型。
另请参阅:numpy.hstack
。
答案 2 :(得分:0)
您的query = new BasicDBObject(mongoDateField, new BasicDBObject("$gte", startDate).append("$lte", endDate));
mongoCount = mongoCollection.getCollection().count(query);
,a
,b
是列表;您必须使用c
来获取数组,它将显示为np.array([1,2,3])
(不带逗号)。
只需从这些列表中创建新列表即可生成列表
[1 2 3]
简单地连接列表会产生一个更长的
In [565]: d=[a,b,c]
In [566]: d
Out[566]:
[[1, 2, 3, 4, 5],
[3, 2, 2, 2, 8],
['test1', 'test2', 'test3', 'test4', 'test5']]
In [567]: a+b+c
Out[567]: [1, 2, 3, 4, 5, 3, 2, 2, 2, 8, 'test1', 'test2', 'test3', 'test4', 'test5']
数组包含数字和字符串都有问题。你必须制作一个“结构化数组”。
将这些组合成一个数组的最简单方法是使用numpy
实用程序函数:
fromarrays
或稍微编辑一下显示屏:
In [561]: x=np.rec.fromarrays(([1,2,3],[3,2,2],['test1','test2','test3']))
In [562]: x['f0']
Out[562]: array([1, 2, 3])
In [563]: x['f2']
Out[563]:
array(['test1', 'test2', 'test3'],
dtype='<U5')
In [568]: x
Out[568]:
rec.array([(1, 3, 'test1'), (2, 2, 'test2'), (3, 2, 'test3')],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<U5')])
这不是二维数组;它是1d(这里有3个元素),有3个字段。
也许以类似于您的规范的方式格式化此数组的最简单方法是使用In [569]: print(x)
[(1, 3, 'test1')
(2, 2, 'test2')
(3, 2, 'test3')]
编写器:
csv