我有两个不同的数组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)
我正在丢失位置参数值错误。请帮助我修复它。
答案 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>';
通常被滥用。它不是列表追加克隆。没有一个应该在循环中重复使用。他们每次都会创建一个新数组,效率不是很高。