этот код (фрагмент_1) предназначен для построения структурированного массива
>>> dt = np.dtype([('name', np.str_, 16), ('age', np.int)])
>>> x = np.array([('Sarah', 16), ('John', 17)], dtype=dt)
>>> x
array([('Sarah', 16), ('John', 17)],
dtype=[('name', '<U16'), ('age', '<i8')])
этот код предназначен для установки типа dtype для данного простого массива
arr = np.array([10, 20, 30, 40, 50])
arr = arr.astype('float64')
thiscode (snippet_3) пытается установить dtype в структурированный массив,
x = np.array([('Sarah', 16), ('John', 17)])
x = x.astype(dt)
, конечно, установка dtype таким образом вызывает ValueError
ValueError Traceback (most recent call last)
<ipython-input-18-201b69204e82> in <module>()
1 x = np.array([('Sarah', 16), ('John', 17)])
----> 2 x = x.astype(dt)
ValueError: invalid literal for int() with base 10: 'Sarah'
Возможно ли установить dtype для существующегоструктурированный массив? что-то вроде сниппета_3?
Зачем мне это делать? Потому что в настройке snippet_1 есть удобный подход для доступа к данным.
x['name']
Если бы я мог добавить «имя столбца» в существующий массив, это было бы круто.