Python-如何更高效地索引和打印
我还在学习Python,我有一个关于代码的效率和可读性的快速问题 现在我有这个,Python-如何更高效地索引和打印,python,pandas,numpy,scikit-learn,Python,Pandas,Numpy,Scikit Learn,我还在学习Python,我有一个关于代码的效率和可读性的快速问题 现在我有这个, import pandas as pd from sklearn.linear_model import Lasso import numpy as np df=pd.read_csv('Data\\cmd.csv') df=df[['A71: ','A120: ',\ 'A70: ','A84: ','A81: ','A89: ',\ 'A101: ','A102: ','A105: ','CR']] X
import pandas as pd
from sklearn.linear_model import Lasso
import numpy as np
df=pd.read_csv('Data\\cmd.csv')
df=df[['A71: ','A120: ',\
'A70: ','A84: ','A81: ','A89: ',\
'A101: ','A102: ','A105: ','CR']]
X=np.array(df[['A71: ','A120: ',\
'A70: ','A84: ','A81: ','A89: ',\
'A101: ','A102: ','A105: ']])
y=np.array(df[['CR']])
clf=Lasso()
clf.fit(X,y)
print('A71: ', clf.coef_[0])
print('A120: ', clf.coef_[1])
print('A70: ', clf.coef_[2])
print('A84: ', clf.coef_[3])
print('A81: ', clf.coef_[4])
print('A89: ', clf.coef_[5])
print('A101: ', clf.coef_[6])
print('A102: ', clf.coef_[7])
print('A105: ', clf.coef_[8])
希望你能看到,我想索引我的X特征值和系数,这样我可以参考每个系数是什么,特别是。我觉得他们的方法比我现在的方法更简单。谢谢大家! 我会创建一个列编号列表,即
col_numbers = [71, 120, 70, 84, 81, 89, 101, 102, 105]
然后从中创建一个列表
col_names = ['A{}: '.format(num) for num in col_numbers]
从数据框中获取这些特定列
df = df[col_names]
并使用for循环进行打印
for i in range(len(col_names)):
print(col_names[i], clf.coef_[i])
我将创建一个列编号列表,即
col_numbers = [71, 120, 70, 84, 81, 89, 101, 102, 105]
然后从中创建一个列表
col_names = ['A{}: '.format(num) for num in col_numbers]
从数据框中获取这些特定列
df = df[col_names]
并使用for循环进行打印
for i in range(len(col_names)):
print(col_names[i], clf.coef_[i])
根据
数据帧的顺序
,只需一个简单的zip,您就可以非常高效地完成这项工作:
for x in zip(df.columns, clf_coeff):
print(x[0], x[1])
样本: 输出:
A71: 0
A120: 1
A70: 2
A84: 3
A81: 4
A89: 5
A101: 6
A102: 7
A105: 8
这里的关键是,尽管df.columns比clf_coeff长,但一旦到达较短数组的一端,zip就会停止,这意味着
'CR'
在末尾并不重要 根据数据帧的顺序
只需一个简单的zip,您就可以非常高效地完成这项工作:
for x in zip(df.columns, clf_coeff):
print(x[0], x[1])
样本: 输出:
A71: 0
A120: 1
A70: 2
A84: 3
A81: 4
A89: 5
A101: 6
A102: 7
A105: 8
这里的关键是,尽管df.columns比clf_coeff长,但一旦到达较短数组的一端,zip就会停止,这意味着
'CR'
在末尾并不重要 通常人们使用df.values
来获得df
的数组版本,而不是np.array(df)
。我现在主要是在YouTube上引用sentdex,所以我基本上使用了他的想法,因为一些函数对我来说是新的,但我肯定会在一些更个人化的项目上实现这一点,比如这个项目。谢谢通常人们使用df.values
来获得df
的数组版本,而不是np.array(df)
。我现在主要是在YouTube上引用sentdex,所以我基本上使用了他的想法,因为一些函数对我来说是新的,但我肯定会在一些更个人化的项目上实现这一点,比如这个项目。谢谢谢谢你的帮助!我很欣赏这个答案,但是clf.coef_u是sklearn上的内置函数之一,所以我选择了bstrauch24的答案,但是所有这些技巧都非常有助于保持我的学习曲线,所以我肯定会在个人项目上实施你的建议!是的,但它是一个数组,您可以对其进行索引,因此您应该能够应用它?谢谢您的帮助!我很欣赏这个答案,但是clf.coef_u是sklearn上的内置函数之一,所以我选择了bstrauch24的答案,但是所有这些技巧都非常有助于保持我的学习曲线,所以我肯定会在个人项目上实施你的建议!是的,但它是一个数组,您可以对其进行索引,所以您应该能够应用它?