Существует метод numpy.concatenate
import numpy as np
np.concatenate( [ np.array( [ [1,2], [2,3] ] ), np.array( [ [3],[4] ] ) ] , axis = 1)
или просто используйте hstack
или vstack
np.hstack( [ np.array( [ [1,2], [2,3] ] ), np.array( [ [3],[4] ] ) ] )
. Это могут быть также используется для удаления столбца (объединить два подмассива) - это можно использовать для удаления многих столбцов.
Чтобы удалить i-й столбец, вы можете взять подмассивы в этот столбец, а затем со следующего и объединить их. Например, чтобы удалить второй столбец (index 1
):
a - np.array( [ [1,2,3], [2,3,4] ] )
a1= a[:,:1]
a2= a[:,2:]
np.hstack([a1,a2])
, поэтому вообще
def remove_column( a, i ):
return np.hstack( [a[:,:i], a[:,(i+1):] ] )
, а затем
>>> remove_column(a, 1)
array([[1, 3],
[2, 4]])
>>> remove_column(a, 0)
array([[2, 3],
[3, 4]])
Фактически , как указано в комментарии - numpy реализует свой собственный delete
метод
np.delete(a, 1, 1)
удаленный второй столбец
и удаление нескольких из них можно выполнить с помощью
np.delete(a, [column1, columne2, ..., columnK], 1)
Третий аргумент - спецификатор оси, 0
будет означать строки, 1
столбцы, None
выравнивает весь массив
Вы хотите все возможные 2 перестановки длины списка серверов. Затем вы хотите запустить для каждой пары серверов тест. Нет ничего проще.
while read -r srv1 srv2; do
ssh root@"$srv1" iperf -c "$srv2" -y C >> "/tmp/results.txt"
done < <(
while read -r line; do
sed 's/$/ '"$line"'/' /root/servers.txt
done < /root/servers.txt
)
<( .. )
. Для каждой строки в файле запускается sed. Sed добавляет строку в конец файла и выводит ее. Таким образом, мы получаем все возможные пары серверов. |
.
while read -r line; do
sed 's/$/ '"$line"'/' /root/servers.txt
done < /root/servers.txt |
while read -r srv1 srv2; do
ssh root@"$srv1" iperf -c "$srv2" -y C >> "/tmp/results.txt"
done