numpy 矩阵行到 csv
numpy matrix row to csv
在下面的代码中,我的目的是将这个矩阵的行复制到一个 csv 文件中。我知道 csv 函数编写器完美地复制了一个数组。但是当行来自矩阵时,这似乎不起作用。然后 csv 文件看起来像这样 'unwanted csv-file'。一行的数字一起在 csv 文件的 1 处。虽然每一个都在单独的一行中,但这正是我想要的。但是我需要用逗号分隔的 1 行的数字。
此代码是对模拟程序所需代码的简化。我想在其中将每个时间间隔的计算矩阵的第一行复制到 csv 文件。本例中的 i 被时间 t 替换,因此每次第一行发送到 file1,第二行发送到 file2,依此类推。但是当我能解决这段代码的问题时,我也能解决我的模拟程序。
import numpy as np
import csv
import pandas as pd
V = np.matrix([[ 8.12500000e-03+4.12066060e-02j, -4.02435390e-18+9.30274988e-19j, -5.41422932e-18+4.03695160e-19j],
[-7.21532153e-18+7.93138177e-19j, 8.12500000e-03+4.12066060e-02j, -6.50521303e-18+4.33680869e-18j],
[-7.09036473e-18+5.11438288e-19j, -6.50521303e-18+4.33680869e-18j, 8.12500000e-03+4.12066060e-02j]])
path = 'C:/Users/Gebruiker/OneDrive/Documenten/'
for i in range(0,3):
if i ==0:
with open(path + 'test12345678911.csv', mode='w', newline='') as voltage_file_a:
voltage_writer_a = csv.writer(voltage_file_a, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
row = np.array(abs(V[i,:]))
voltage_writer_a.writerow(row)
else:
with open(path + 'test12345678911.csv', mode = 'a', newline = '') as voltage_file_a:
voltage_writer_a = csv.writer(voltage_file_a, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
row = np.array(abs(V[i,:]))
voltage_writer_a.writerow(row)
我试图通过步骤 'row = np.array...' 解决这个问题,但这没有帮助。有人知道如何将矩阵的行转换为 csv 文件。
此代码生成以下 csv 文件:
unwanted csv-file
在此解决方案中可能有用的一些命令:
np.matrix.ravel()
np.matrix.flatten()
np.matrix.tolist()
在您的示例中,将 np.matrix
替换为 V
。
在下面的代码中,我的目的是将这个矩阵的行复制到一个 csv 文件中。我知道 csv 函数编写器完美地复制了一个数组。但是当行来自矩阵时,这似乎不起作用。然后 csv 文件看起来像这样 'unwanted csv-file'。一行的数字一起在 csv 文件的 1 处。虽然每一个都在单独的一行中,但这正是我想要的。但是我需要用逗号分隔的 1 行的数字。
此代码是对模拟程序所需代码的简化。我想在其中将每个时间间隔的计算矩阵的第一行复制到 csv 文件。本例中的 i 被时间 t 替换,因此每次第一行发送到 file1,第二行发送到 file2,依此类推。但是当我能解决这段代码的问题时,我也能解决我的模拟程序。
import numpy as np
import csv
import pandas as pd
V = np.matrix([[ 8.12500000e-03+4.12066060e-02j, -4.02435390e-18+9.30274988e-19j, -5.41422932e-18+4.03695160e-19j],
[-7.21532153e-18+7.93138177e-19j, 8.12500000e-03+4.12066060e-02j, -6.50521303e-18+4.33680869e-18j],
[-7.09036473e-18+5.11438288e-19j, -6.50521303e-18+4.33680869e-18j, 8.12500000e-03+4.12066060e-02j]])
path = 'C:/Users/Gebruiker/OneDrive/Documenten/'
for i in range(0,3):
if i ==0:
with open(path + 'test12345678911.csv', mode='w', newline='') as voltage_file_a:
voltage_writer_a = csv.writer(voltage_file_a, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
row = np.array(abs(V[i,:]))
voltage_writer_a.writerow(row)
else:
with open(path + 'test12345678911.csv', mode = 'a', newline = '') as voltage_file_a:
voltage_writer_a = csv.writer(voltage_file_a, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
row = np.array(abs(V[i,:]))
voltage_writer_a.writerow(row)
我试图通过步骤 'row = np.array...' 解决这个问题,但这没有帮助。有人知道如何将矩阵的行转换为 csv 文件。
此代码生成以下 csv 文件: unwanted csv-file
在此解决方案中可能有用的一些命令:
np.matrix.ravel()
np.matrix.flatten()
np.matrix.tolist()
在您的示例中,将 np.matrix
替换为 V
。