se obtiene el error debido gama de NumPy es homogeneous, meaning it is a multidimensional table of elements all of the same type. Esto es diferente de una lista de listas multidimensional en Python "regular", donde puede tener objetos de diferentes tipos en una lista.
Python regular:
>>> CoverageACol = [[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]
>>> CoverageACol[0][0] = "hello"
>>> CoverageACol
[['hello', 1, 2, 3, 4],
[5, 6, 7, 8, 9]]
NumPy:
>>> from numpy import *
>>> CoverageACol = arange(10).reshape(2,5)
>>> CoverageACol
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
>>> CoverageACol[0,0] = "Hello"
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/home/biogeek/<ipython console> in <module>()
ValueError: setting an array element with a sequence.
Por lo tanto, depende de lo que quiere lograr, ¿por qué desea almacenar una cadena en una matriz llena para el resto con números? Si eso es realmente lo que quiere, se puede ajustar el tipo de datos de la matriz NumPy de cadena:
>>> CoverageACol = array(range(10), dtype=str).reshape(2,5)
>>> CoverageACol
array([['0', '1', '2', '3', '4'],
['5', '6', '7', '8', '9']],
dtype='|S1')
>>> CoverageACol[0,0] = "Hello"
>>> CoverageACol
array([['H', '1', '2', '3', '4'],
['5', '6', '7', '8', '9']],
dtype='|S1')
en cuenta que sólo se le asigna la primera letra Hello
. Si desea que se asigne la palabra completa, debe configurar an array-protocol type string:
>>> CoverageACol = array(range(10), dtype='a5').reshape(2,5)
>>> CoverageACol:
array([['0', '1', '2', '3', '4'],
['5', '6', '7', '8', '9']],
dtype='|S5')
>>> CoverageACol[0,0] = "Hello"
>>> CoverageACol
array([['Hello', '1', '2', '3', '4'],
['5', '6', '7', '8', '9']],
dtype='|S5')
¡Gracias por su explicación detallada! – Moose
Configuración 'dtype = object' también funciona: https://stackoverflow.com/questions/14639496/python-numpy-array-of-arbitrary-length-strings –
En su línea' overageACol = array (rango (10), dtype = str) .reshape (2,5) '. ¿Es posible cambiar 'dtype' a' list' o 'dict'? –