Ответ будет отрицательным, ваши попытки действий на сервере не будут выполнены через 30 секунд, ваш объект SqlCommand выдаст исключение в ваш код (ниже), а транзакция неявной хранимой процедуры будет отката.
Истекло время ожидания , Период времени ожидания истекает до завершения операции или сервер не отвечает.
... по крайней мере, это поведение, которое я могу проверить с помощью SQL Server ...
Я думаю, вы хотите использовать np.ravel_multi_index
. При индексировании с нулевым индексом numpy и принимая во внимание, что массивы Matlab являются стилями Fortran, эквивалент вашему примеру в Matlab:
>>> np.ravel_multi_index((1, 0, 1), dims=(3, 4, 2), order='F')
13
Просто чтобы вы поняли, что происходит, вы можете получить тот же результат с точечным произведением ваших индексов и шагами массива:
>>> a = np.random.rand(3, 4, 2)
>>> np.dot((1, 0, 1), a.strides) / a.itemsize
9.0
>>> np.ravel_multi_index((1, 0, 1), dims=(3, 4, 2), order='C')
9
>>> a[1, 0, 1]
0.26735433071594039
>>> a.ravel()[9]
0.26735433071594039
Вот как я решил проблему для меня, переписанную так же, как приведенный выше пример.
Основная идея заключается в создании вспомогательного массива с индексами с использованием arange
и reshape
.
In [1]: import numpy as np
In [2]: A = np.random.rand(3,4,2)
In [3]: A
Out[3]:
array([[[ 0.79341698, 0.55131024],
[ 0.29294586, 0.22209375],
[ 0.11514749, 0.15150307],
[ 0.71399288, 0.11229617]],
[[ 0.74384776, 0.96777714],
[ 0.1122338 , 0.23915265],
[ 0.28324322, 0.7536933 ],
[ 0.29788946, 0.54770654]],
[[ 0.13496253, 0.24959013],
[ 0.36350264, 0.00438861],
[ 0.77178808, 0.66411135],
[ 0.26756112, 0.54042292]]])
In [4]: helper = np.arange(3*4*2)
In [5]: helper
Out[5]:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23])
In [6]: helper = helper.reshape([3,4,2])
In [7]: helper
Out[7]:
array([[[ 0, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11],
[12, 13],
[14, 15]],
[[16, 17],
[18, 19],
[20, 21],
[22, 23]]])
In [8]: linear_index = helper[1,0,1]
In [9]: linear_index
Out[9]: 9
Обратите внимание, что:
A[idx] == A.flat[flat_idx] == A.ravel()[flat_idx]
, еслиflat_idx = np.ravel_multi_index(idx, A.shape)
. Приятно отметить, чтоflat_idx
вычисляются по-разному в matlab и numpy. – Bi Rico 6 March 2013 в 01:01