сумма numpy массивов с разными формами [дубликат]

Обычно ошибка, возникающая при сбое в работе базы данных базы данных, поэтому не забудьте подключить вашу базу данных или включить файл базы данных.

include_once(db_connetc.php');

ИЛИ

// Create a connection
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());

//Select database
mysql_select_db("db_name", $connection) or die(mysql_error());

$employee_query = "SELECT * FROM employee WHERE `id` ='".$_POST['id']."';

$employee_data = mysql_query($employee_query);

if (mysql_num_rows($employee_data) > 0) {

    while ($row = mysql_fetch_array($employee_data)){
        echo $row['emp_name'];
    } // end of while loop
} // end of if
  • Лучшей практикой является запуск запроса в sqlyog, а затем его копирование в код страницы.
  • Всегда сохраняйте свой запрос в переменной и затем повторяйте эту переменную. Затем перейдите к mysql_query($query_variable);.
8
задан leofields 23 October 2015 в 13:20
поделиться

2 ответа

Как указано в комментариях Divakar, просто добавьте новую ось в b.

Я предлагаю вам больше узнать о вещании , что очень полезно для векторизации вычислений в numpy: интересно, a.transpose() - b не вызвало бы ошибку (вам понадобится

В этом вычислении форма первого массива - (3, 5), а b.shape - (5). Таким образом, форма b соответствует хвосту формы a, и может случиться вещание. Это не тот случай, когда форма первого массива (5, 3), следовательно, полученная вами ошибка.

Ниже приведены некоторые тесты времени выполнения для сравнения скоростей предлагаемых ответов с вашими значениями для a и b: вы можете видеть, что различия не очень значительны

In [9]: %timeit (a.T - b).T
Out[9]: 1000000 loops, best of 3: 1.32 µs per loop

In [10]: %timeit a - b[:,None]
Out[10]: 1000000 loops, best of 3: 1.25 µs per loop

In [11]: %timeit a - b[None].T
Out[11]: 1000000 loops, best of 3: 1.3 µs per loop
2
ответ дан P. Camilleri 24 August 2018 в 19:15
поделиться

Вам нужно преобразовать массив b to a (2, 1) shape, используйте None or numpy.newaxis в кортеже индекса. Вот Индексация массива Numpy .

Вы можете сделать это. Like:

import numpy

a = numpy.array([[ 1,  2,  3],
           [ 4,  5,  6],
           [ 7,  8,  9],
           [10, 11, 12],
           [13, 14, 15]])

b = numpy.array([ 1,  2,  3,  4,  5])
c=a - b[:,None]
print c

Выход:

Out[2]: 
array([[ 0,  1,  2],
       [ 2,  3,  4],
       [ 4,  5,  6],
       [ 6,  7,  8],
       [ 8,  9, 10]])
15
ответ дан Sakib Ahammed 24 August 2018 в 19:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: