将值附加到numpy数组

时间:2019-05-16 06:34:49

标签: numpy

我有两个不同的数组b0和b1,其中: b0 = [1,2] b1 = [3,4]

我希望将list [b0的第一个元素,b1的第一个元素]追加到新数组B中 并类似地: 将list [b0的第二个元素,b1的第二个元素]追加到新数组B中 等等……

那是我的新数组应该是这样的: 数组([1,3],[2,4])

下面是我的代码:

b0=np.array([1,2])
b1=np.array([3,4])

for val in range(len(b1)):
    L=[b0[val],b1[val]]
    B=np.append(L,axis=0)
print(B)

我正在丢失位置参数值错误。请帮助我修复它。

3 个答案:

答案 0 :(得分:0)

如果您坚持使用numpy数组,这就是我要做的。

new = []
for x, y in zip(b0, b1):
    new.append([x, y])

new = np.array(new)

或列表理解

new = np.array([[x,y] for x, y in zip(b0, b1)])

结果:

array([[1, 3],
       [2, 4]])

答案 1 :(得分:0)

在我看来,在此处使用np.append并不是最方便的方法。您始终可以将python列表转换为np.array,在这种情况下仅使用zip会容易得多。

b0=np.array([1,2])
b1=np.array([3,4])
B=np.array(list(zip(b0,b1)))

输出:

>>> B
array([[1, 3],
       [2, 4]])

答案 2 :(得分:0)

In [56]: np.vstack((b0,b1))                                                  
Out[56]: 
array([[1, 2],
       [3, 4]])

订单错误:

In [57]: np.vstack((b0,b1)).T                                                
Out[57]: 
array([[1, 3],
       [2, 4]])

但是您可以转置它:

stack

In [58]: np.stack((b0,b1), axis=1) Out[58]: array([[1, 3], [2, 4]]) 是更通用的连接器

In [59]: np.column_stack((b0,b1))                                            
Out[59]: 
array([[1, 3],
       [2, 4]])

或:

np.append

在我最近的其他答案中https://stackoverflow.com/a/56159553/901925

有关合并数组的更多详细信息

所有这些,包括np.concatenate使用np.append,只是首先以不同的方式调整尺寸。 $string = '{ "my_index": 1, "first_name": "John", "last_name": "Smith", "address": { "address1": "123 Main St", "address2": "PO Box 123", "city": "Anywhere", "state": "CA", "zip": 12345 } }'; $recursiveIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($string, true)), RecursiveIteratorIterator::SELF_FIRST); $data = array('$data = array();'); foreach ($recursiveIterator as $key => $value) { $currentDepth = $recursiveIterator->getDepth(); $keys = array(); // Traverse up array to get keys for ($subDepth = $currentDepth; $subDepth >= 0; $subDepth--) { $keys[] = $recursiveIterator->getSubIterator($subDepth)->key(); } if (is_array($value)) { $data[] = ''; } $data[] = '$data["' . implode('"]["', array_reverse($keys)) . '"] = ' . (!is_array($value) ? is_int($value) ? $value : '"' . $value . '"' : 'array()') . ';'; } echo '<pre>'; print_r(implode("\n", $data)); echo '</pre>'; 通常被滥用。它不是列表追加克隆。没有一个应该在循环中重复使用。他们每次都会创建一个新数组,效率不是很高。