Python 使用genfromtxt从csv文件导入数学函数
我有一个.csv文件中的数组,其中第二列填充了不同的函数来计算剪切截面 当我尝试导入.csv文件时,该列中包含函数(例如188*x**2)的每一行在python中都以nan的形式返回Python 使用genfromtxt从csv文件导入数学函数,python,python-3.x,Python,Python 3.x,我有一个.csv文件中的数组,其中第二列填充了不同的函数来计算剪切截面 当我尝试导入.csv文件时,该列中包含函数(例如188*x**2)的每一行在python中都以nan的形式返回 import numpy as np filename = 'filename_for_functions.csv' data = np.genfromtxt(filename,delimiter = ',', skip_header = 1) 它以数组的形式返回,在某些部分包含nan值 是否有其他方法可以导入
import numpy as np
filename = 'filename_for_functions.csv'
data = np.genfromtxt(filename,delimiter = ',', skip_header = 1)
它以数组的形式返回,在某些部分包含nan值
是否有其他方法可以导入csv文件并从中使用任何函数
"数据":
array([[ 0. , 0. , 0. ],
[ 5.9 , nan, nan],
[ 6.9 , nan, nan],
[ 10.8 , -145.02 , nan],
[ 23.5 , -130.52 , nan],
[ 23.5 , nan, nan],
[ 35.25 , 130.53 , nan],
[ 46.75 , 145.03 , nan],
[ 58.5 , nan, nan],
[ 71.2 , nan, nan],
[ 75.1 , 0. , -0.3699]])
每个“nan”都是.csv文件中的一个函数,我想用它来计算代码中的其他内容
该代码将从excel文件中提取一个数学函数,并使用.csv文件中的数学公式计算该位置的剪力。我知道在代码中硬编码数组中的公式会更容易,但我希望它更灵活
没有在谷歌上找到任何东西
编辑:
我使用了dtype建议来解决这个问题。但它带来了一个奇怪的问题,对我毫无帮助。我所做的是将每个值都转换为字符串,然后在调用时使用eval()将它们转换为python可读的行。对于数字,我使用float()(我猜也可以使用int()。请注意您的值是什么,因为您可能需要它们作为字符串保留
data = np.genfromtxt(filename, delimiter = ',', skip_header = 1, dtype= str)
差点忘了说这已经解决了,这是我的解决方案。Numpy阵列支持一种数据类型,例如int64。您可以使用支持每列不同数据类型的Pandas dataframe导入csv文件:
将熊猫作为pd导入
filename='filename\u for_functions.csv'
data=pd.read\u csv(文件名)
我认为数据类型有问题
import numpy as np
filename = 'filename_for_functions.csv'
data = np.genfromtxt(filename, delimiter = ',', skip_header = 1, dtype=None)
如果数据类型为None
,则列将分别由每列的内容确定
您可以在此处阅读有关数据类型的内容请将该结果数组包含在文章本身中,而不是作为图像。您能否至少包含数据文件的一部分,以及您尝试执行的操作的说明?请参阅:。显示用于解决此问题的数据类型建议的示例文件。但它带来了一个奇怪的问题,对我毫无帮助。我所做的是将每个值都转换为字符串,然后在调用时使用eval()将它们转换为python可读的行。对于数字,我使用float()(我猜也可以使用int()。请注意您的值是什么,因为您可能需要它们作为字符串保留。data=np.genfromtxt(filename,delimiter=',,skip_header=1,dtype=str)几乎忘了说这个问题已经解决了,这是我的解决方案。我很高兴能帮助你。如果有一个传入CSV文件的示例和一个预期输出的示例,那么我可以为您的任务提供更合适的解决方案。