在Python中,假设有一个矩阵,我该如何打印它呢?

时间:2017-07-26 13:32:23

标签: python

让我首先通过以下代码片段概述手头问题的整体背景。

import pandas as pd

df = pd.read_csv("abc.csv")
df.as_matrix

输出所需的矩阵[100行×785列]。

我在输出(使用print())上面一行矩阵时遇到了困难。

我尝试了以下方法,但徒劳无功:

print(df[0])
print(df[:, 0])

3 个答案:

答案 0 :(得分:0)

获取行索引等于A的特定行:

df.iloc[A, :785]

通常,您可以使用df.iloc使用idnex从pandas数据帧中切片。例如,要将行最多切成100行,将列最多切成785,您可以执行以下操作:

import pandas as pd

df = pd.read_csv("abc.csv")
df = df.iloc[:100, :785]
df.as_matrix()

如果要在转换为矩阵后对第一行进行切片,则使用列表列表,因此可以按如下方式进行:

print(df.as_matrix()[1,:])

这是一个有效的例子:

from StringIO import StringIO
import pandas as pd

st = """
col1|col2|col3 
1|2|3
4|5|6
7|8|9
"""

pd.read_csv(StringIO(st), sep="|")
df = pd.read_csv(StringIO(st), sep="|")
print("print first row from a matrix") 
print(df.as_matrix()[0,:])
print("print one column")
print(df.iloc[:2,1]) 
print("print a slice")
print(df.iloc[:2,:])
print("print one row")
print(df.iloc[1,:]) 

答案 1 :(得分:0)

我认为你缺少括号:

df.as_matrix()[0]

或者您可以使用:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.head.html

.head(n = 5)返回前n行

df.head(1).as_matrix()

答案 2 :(得分:0)

as_matrix()的返回值是数组数组。所以下面的代码应该可以工作:

import pandas as pd
df = pd.read_csv("abc.csv")
matrix = df.as_matrix()
print(matrix[0]) # out put first row.
print(matrix[3:5] # output from 3 row up to 4 row.