繁体   English   中英

如何使用Numpy从1维数组中向2维数组插入值

[英]How to insert value to a 2 dimensions array from a 1 dimension array using Numpy

假设我们有两个数组

a = [1, 2]

b = [ [A, B, C], [D, E, F] ]

我想通过梳理a&b来使c = [ [1,A, B, C], [2, D, E, F] ]

怎么实现呢?

a和b中的第一级孩子的数量是相同的。

你需要reshape a所以它变成一个2x1数组然后你可以使用hstack水平堆叠数组:

In[13]:
np.hstack([a.reshape((2,1)), b])

Out[13]: 
array([['1', 'A', 'B', 'C'],
       ['2', 'D', 'E', 'F']], 
      dtype='<U11')

正如numpy master @Divakar所建议的那样,如果您对数组进行切片并将None作为其中一个轴传递,则可以引入或重新整形数组,而无需reshape

In[14]:
np.hstack([a[:,None], b])

Out[14]: 
array([['1', 'A', 'B', 'C'],
       ['2', 'D', 'E', 'F']], 
      dtype='<U11')

它在文档中解释,寻找newaxis示例

你可以使用zip和列表理解:

a = [1, 2]
b = [['a', 'b', 'c'], ['d', 'e', 'f']]
c = [[e] + l for e, l in zip(a, b)]
print(c) #=> [[1, 'a', 'b', 'c'], [2, 'd', 'e', 'f']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM