首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的转置矩阵和乘法矩阵

问Python中的转置矩阵和乘法矩阵
EN

Stack Overflow用户
提问于 2017-04-13 16:11:11
回答 1查看 1.2K关注 0票数 0

我有一个有效的矩阵保存为一个CSV文件。我们把这个矩阵叫做“X”。

我需要做的是取csv文件,将它作为一个矩阵读取,找到它的转置,然后将两者相乘。目前,我有以下代码:

代码语言:javascript
复制
import numpy
import csv
reader = csv.reader(open("votes.csv","rb"), delimiter=",")
text = list(reader)
result = numpy.matrix(text).astype(int)
print result

它应该显示csv文件为整数矩阵,但即使这样也会引发以下错误:

代码语言:javascript
复制
result = numpy.matrix(text).astype(int)
ValueError: invalid literal for int() with base 10: ''

有人能帮我吗?

如果csv的值为任何值,则只需填充正整数和负整数值,用逗号分隔。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 16:18:16

您的CSV包含一个不能解析为int的空单元格。

不使用csv.reader,您可以使用让numpy直接读取CSV,它还将为您处理这些空的或无效的单元格,而不会引发错误:

代码语言:javascript
复制
X = numpy.genfromtxt('1.csv', dtype=int, delimiter=',', filling_values=0)

# compute the matrix multiplication.
result = X.dot(X.T)

(这里我使用filling_values=0将所有空单元格替换为0。)

使用numpy.savetxt将数组保存到CSV中:

代码语言:javascript
复制
numpy.savetxt('2.csv', result, fmt='%d', delimiter=',')

(如果不提供fmt,则使用科学符号编写数字。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43397091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档