在 Numpy 中连接 3 个或更多列表的更简单方法
Simpler way to concatenate 3 or more lists in Numpy
目的是合并四个列表 result
、trainAcc
、crossAcc
和 testAcc
,每个列表的长度都相同,并将结果矩阵存储为CSV 文件以及必要的标题。
以下是我执行此操作的工作代码。
acc = np.concatenate((np.array(result,ndmin=2).T,
np.array(trainAcc, ndmin=2).T,
np.array(crossAcc, ndmin=2).T,
np.array(testAcc, ndmin=2).T), axis=1)
acc = np.concatenate((np.array(["Classifier","Train Accuracy", "CV Accuracy", "Test Accuracy"], ndmin=2), acc), axis=0)
with open("bestClassifier.csv", 'wb') as f:
csv.writer(f).writerows(acc)
如您所见,对于如此简单的任务,代码在美学上并不是那么令人愉悦。所有列表都必须转换为二维数组并转置才能合并 column-wise.
是否有使用或不使用 NumPy 来完成此任务的更简单方法?
为什么不
acc = np.array((result, trainAcc, crossAcc, testAcc)).T
正在测试
In [14]: np.array(([1,2,3,4,5],[10,20,30,40,50])).T
Out[14]:
array([[ 1, 10],
[ 2, 20],
[ 3, 30],
[ 4, 40],
[ 5, 50]])
输出结果如何?
In [25]: acc = np.array(([1,2,3,4,5],[10,20,30,40,50])).T
In [26]: with open('pip.csv','w') as f:
....: writer = csv.writer(f)
....: writer.writerow(['Units', 'Tens'])
....: writer.writerows(acc)
In [27]: !cat pip.csv
Units,Tens
1,10
2,20
3,30
4,40
5,50
要合并列表:
a = [1, 2, 3, 4]
b = [10, 20, 30, 40]
c = [100, 200, 300, 400]
zipped = zip (a, b, c)
print (zipped)
# [(1, 10, 100), (2, 20, 200), (3, 30, 300), (4, 40 400)]
目的是合并四个列表 result
、trainAcc
、crossAcc
和 testAcc
,每个列表的长度都相同,并将结果矩阵存储为CSV 文件以及必要的标题。
以下是我执行此操作的工作代码。
acc = np.concatenate((np.array(result,ndmin=2).T,
np.array(trainAcc, ndmin=2).T,
np.array(crossAcc, ndmin=2).T,
np.array(testAcc, ndmin=2).T), axis=1)
acc = np.concatenate((np.array(["Classifier","Train Accuracy", "CV Accuracy", "Test Accuracy"], ndmin=2), acc), axis=0)
with open("bestClassifier.csv", 'wb') as f:
csv.writer(f).writerows(acc)
如您所见,对于如此简单的任务,代码在美学上并不是那么令人愉悦。所有列表都必须转换为二维数组并转置才能合并 column-wise.
是否有使用或不使用 NumPy 来完成此任务的更简单方法?
为什么不
acc = np.array((result, trainAcc, crossAcc, testAcc)).T
正在测试
In [14]: np.array(([1,2,3,4,5],[10,20,30,40,50])).T
Out[14]:
array([[ 1, 10],
[ 2, 20],
[ 3, 30],
[ 4, 40],
[ 5, 50]])
输出结果如何?
In [25]: acc = np.array(([1,2,3,4,5],[10,20,30,40,50])).T
In [26]: with open('pip.csv','w') as f:
....: writer = csv.writer(f)
....: writer.writerow(['Units', 'Tens'])
....: writer.writerows(acc)
In [27]: !cat pip.csv
Units,Tens
1,10
2,20
3,30
4,40
5,50
要合并列表:
a = [1, 2, 3, 4]
b = [10, 20, 30, 40]
c = [100, 200, 300, 400]
zipped = zip (a, b, c)
print (zipped)
# [(1, 10, 100), (2, 20, 200), (3, 30, 300), (4, 40 400)]