Se você realmente quer uma matriz de estilo C
import array
a = array.array('i', x * [0])
a[3] = 5
try:
[5] = 'a'
except TypeError:
print('integers only allowed')
Observe que não há conceito de variável não inicializada em python. Uma variável é um nome que está vinculado a um valor, então esse valor deve ter algo. No exemplo acima, a matriz é inicializada com zeros.
No entanto, isso é incomum em python, a menos que você realmente precise dele para coisas de baixo nível. Na maioria dos casos, é melhor usar uma lista vazia ou array numpy vazio, como outras respostas sugerem.
a = [obj] * N
é que o mesmo obj aparece em cada elemento do array. Se for um objeto mutável e você modificar um item, todos serão alterados. ... Mas, para este exemplo usando números inteiros (ou qualquer outro tipo imutável), não faz diferença. Ou, se você apenas atribuir a elementos, também não é um problema. (Menciono isso porque tenho feito exatamente isso com muita frequência :))