Что происходит
PHP видит, что вы пытаетесь использовать элемент массива, который не установлен, поэтому он предупреждает вас об этом. Это не серьезно в этом случае, но вы хотите научиться избегать сообщений.
Решение
Функция isset
проверит, определен ли ключ массива.
//You must first of all test isset and then is_numeric,
// else you still get the error. Research 'short circuiting' in php
if ( isset($args['myargs']['custom_value']) && is_numeric($args['myargs']['custom_value'])) {
echo 'Yes';
} else {
echo 'No';
}
Это решение также выведет «Нет», если ключ массива никогда не определялся.
Вы могли используйте PIL для создания (и отображения) изображения:
from PIL import Image
import numpy as np
w, h = 512, 512
data = np.zeros((h, w, 3), dtype=np.uint8)
data[256, 256] = [255, 0, 0]
img = Image.fromarray(data, 'RGB')
img.save('my.png')
img.show()
Используя fromarray подушки, например:
from PIL import Image
from numpy import *
im = array(Image.open('image.jpg'))
Image.fromarray(im).show()
Следующее должно работать:
from matplotlib import pyplot as plt
plt.imshow(data, interpolation='nearest')
plt.show()
Если вы используете Jupyter notebook / lab, используйте эту встроенную команду перед импортом matplotlib:
%matplotlib inline
Библиотека изображений Python может отображать изображения с использованием массивов Numpy. Взгляните на эту страницу для примера кода:
РЕДАКТИРОВАТЬ: Как указано в примечании внизу этой страницы, вам следует проверить последние примечания к выпуску, которые делают это намного проще:
Используя pygame , вы можете открыть окно, получить поверхность в виде массива пикселей и управлять оттуда по своему усмотрению. Однако вам нужно будет скопировать массив numpy в массив поверхностей, что будет намного медленнее, чем выполнение реальных графических операций на самих поверхностях pygame.
Кратчайший путь - использовать scipy
, например:
from scipy.misc import toimage
toimage(data).show()
Для этого также необходимо установить PIL или Pillow.
Аналогичный подход, также требующий PIL или Pillow, но который может вызывать другого зрителя :
from scipy.misc import imshow
imshow(data)