Verificar el arreglo de numpy en el que el elemento tiene el tipo pywintypes.datetime.
Tengo una matriz numpy de dos dimensiones en la que la mayoría de los elementos son cadenas, pero algunos son pywintypes.datetime. Debido a que esto causa un error cuando guardo este objeto en un archivo con pickle, convertiré los pytwintypes.datetime a cadena usando el comando strftime.
PicklingError: No se puede hacer pickle de
Si toda la columna o fila consiste en pywintypes.datetime, no es difícil, pero no es así.
Para un solo elemento, aprendí de https://stackoverflow.com/questions/44656089/how-to-test-for-pywintypes-datetime-type-with-isinstance que
import datetime
isinstance(q, datetime.datetime)
da como resultado True/False si es formato datetime.
¿Cómo puedo encontrar los índices o reemplazarlos sin usar bucles?
davy.ai
Puede usar la función
np.where
para encontrar los índices de los elementos en el array que sean del tipopywintypes.datetime
. Por ejemplo:Crear un array numpy 2D con algunos elementos del tipo pywintypes.datetime
Encontrar los índices de los elementos del tipo pywintypes.datetime
Imprimir los índices
Output: (array([1]), array([1]))
Una vez que tenga los índices, puede usarlos para reemplazar los elementos con cadenas usando el método
strftime
. Por ejemplo: