Я работаю с python и я новичок. Я хочу построить два массива из моего кода, один из них сюжет правильно, но другой один бросает мне ошибку:Ошибка при построении массива на python
/usr/lib64/python2.7/site-packages/matplotlib/axes.py:4511: RuntimeWarning: invalid value encountered in true_divide
c /= np.sqrt(np.dot(x, x) * np.dot(y, y))
Traceback (most recent call last):
File "./track-multiple.py", line 169, in <module>
ax2.xcorr(x2, y2)
File "/usr/lib64/python2.7/site-packages/matplotlib/axes.py", line 4508, in xcorr
c = np.correlate(x, y, mode=2)
File "/usr/lib64/python2.7/site-packages/numpy/core/numeric.py", line 871, in correlate
return multiarray.correlate2(a, v, mode)
ValueError: object too deep for desired array
Код является следующим:
x1 = np.arange(0,len(colunas[0],1)
y1 = columnas[0]
x2 = np.arange(0,len(filas))
y2 = filas
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.xcorr(x1,y1)
ax1.axhline(0, color='black', lw=2)
ax2 = fig.add_subplot(212, sharex=ax1)
ax2.xcorr(x2,y2)
ax2.axhline(0, color='blue', lw=2)
plt.show()
Я думаю, проблема в массиве filas из-за его измерения, или я неправильно использую метод xcorr. Если я отпечатанный на фил и Columnas я получаю это:
filas =
[[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
...
[0]
[0]
[0]
[0]
[0]]
columnas =
[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0]]
Два массива был создан с помощью библиотеки OpenCV в этих предложениях:
columnas = cv2.reduce(fgmask,0,cv.CV_REDUCE_MAX)
filas = cv2.reduce(fgmask,1,cv.CV_REDUCE_MAX)
Ожидает идеи!
PD: OK Я считаю, как исправить ошибку, я просто преобразовать массив фила с:
filas = filas[:,0]
Но я не знаю точно причину ошибки, а также исправление, может кто-нибудь ответить мои вопросы?
Я забыл поблагодарить вас, это было полезно для меня: D –