Запись массива Numpy с NaN в CSV в Python - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь записать 2D numpy array в CSV-файл, используя np.savetxt.

import numpy as np

data = np.array([[0,np.nan,2,3],[4,5,np.nan,7],[8,9,10,np.nan]])

np.savetxt("file.csv", data, delimiter=",", fmt='%.2f')

, который создает файл file.csv со следующим содержимым.

0.00,nan,2.00,3.00
4.00,5.00,nan,7.00
8.00,9.00,10.00,nan

Как видите, файл содержит nan вместо пробелов.Я знаю, что nan - это не строка.

Ожидаемый результат:

0.00,,2.00,3.00
4.00,5.00,,7.00
8.00,9.00,10.00,

Используя pandas, я могу добиться этого, как показано ниже.

import pandas as pd

df = pd.DataFrame(data)
df.to_csv("file1.csv", index=False)

Но я пока воздерживаюсь от использования pandas.Так можно ли добиться этого, используя numpy?

1 Ответ

2 голосов
/ 21 марта 2019

Самое простое решение:

data1 = data.astype(str)
data1[data1=='nan'] = ''
np.savetxt("file.csv", data1, delimiter=",", fmt="%s")
...