python 生成csv文件的程序,其中每一列都是正弦波的数据
python program to generate a csv file where each column is a data of sinusoidal wave
要求生成一个csv文件,每一列都是频率为1Hz、2Hz、3Hz、4Hz、5Hz、6Hz、7Hz的正弦波数据。因此共有 7 列。
1 赫兹有 100 个波点,因此总共有 100 x 7= 700 个点。
谁能解释一下如何为这个要求编写代码
你可以试试这个。
这里,
- 我正在使用 Numpy 获取所需的频率值。
- 然后将这些值复制到 pandas dataframe
- 最后写入csv文件。
有关 Python
中正弦波的更多有用详细信息,请参阅此 link
import numpy as np
import pandas as pd
def get_values_for_frequency(freq):
# sampling rate
sr = 100.0
# sampling interval
ts = 1.0/sr
t = np.arange(0,1,ts)
# frequency of the signal
freq = 5
y = np.sin(2*np.pi*freq*t)
return y
df = pd.DataFrame(columns =['1Hz','2Hz', '3Hz', '4Hz', '5Hz', '6Hz', '7Hz'])
df['1Hz']=pd.Series(get_values_for_frequency(1))
df['2Hz']=pd.Series(get_values_for_frequency(2))
df['3Hz']=pd.Series(get_values_for_frequency(3))
df['4Hz']=pd.Series(get_values_for_frequency(4))
df['5Hz']=pd.Series(get_values_for_frequency(5))
df['6Hz']=pd.Series(get_values_for_frequency(6))
df['7Hz']=pd.Series(get_values_for_frequency(7))
df.to_csv('sine.csv', index=False)
生成的 csv 文件的示例输出:
要求生成一个csv文件,每一列都是频率为1Hz、2Hz、3Hz、4Hz、5Hz、6Hz、7Hz的正弦波数据。因此共有 7 列。
1 赫兹有 100 个波点,因此总共有 100 x 7= 700 个点。
谁能解释一下如何为这个要求编写代码
你可以试试这个。 这里,
- 我正在使用 Numpy 获取所需的频率值。
- 然后将这些值复制到 pandas dataframe
- 最后写入csv文件。
有关 Python
中正弦波的更多有用详细信息,请参阅此 linkimport numpy as np
import pandas as pd
def get_values_for_frequency(freq):
# sampling rate
sr = 100.0
# sampling interval
ts = 1.0/sr
t = np.arange(0,1,ts)
# frequency of the signal
freq = 5
y = np.sin(2*np.pi*freq*t)
return y
df = pd.DataFrame(columns =['1Hz','2Hz', '3Hz', '4Hz', '5Hz', '6Hz', '7Hz'])
df['1Hz']=pd.Series(get_values_for_frequency(1))
df['2Hz']=pd.Series(get_values_for_frequency(2))
df['3Hz']=pd.Series(get_values_for_frequency(3))
df['4Hz']=pd.Series(get_values_for_frequency(4))
df['5Hz']=pd.Series(get_values_for_frequency(5))
df['6Hz']=pd.Series(get_values_for_frequency(6))
df['7Hz']=pd.Series(get_values_for_frequency(7))
df.to_csv('sine.csv', index=False)
生成的 csv 文件的示例输出: