Python 如何在seaborn中将3D numpy数组作为数据帧加载
例如,我有CSV文件中的数据Python 如何在seaborn中将3D numpy数组作为数据帧加载,python,numpy,dataframe,matplotlib,seaborn,Python,Numpy,Dataframe,Matplotlib,Seaborn,例如,我有CSV文件中的数据 0, 3, 4, 2, 4, 2 2, 1, 7, 2, 8, 3 3, 4, 6, 2, 5, 1 我使用`np.genfromtxt加载它,然后将它重塑为一个三维形状数组(3,2,3),然后在轴1上求和 我想把它作为一个数据帧加载到Seaborn来绘制它,什么是最具Python风格的方式呢 例如: values = np.genfromtxt('data.csv', delimiter=',') # len(values) evaluates value
0, 3, 4, 2, 4, 2
2, 1, 7, 2, 8, 3
3, 4, 6, 2, 5, 1
我使用`np.genfromtxt加载它,然后将它重塑为一个三维形状数组(3,2,3),然后在轴1上求和
我想把它作为一个数据帧加载到Seaborn来绘制它,什么是最具Python风格的方式呢
例如:
values = np.genfromtxt('data.csv', delimiter=',') # len(values) evaluates
values = np.reshape(values,(3,2,len(values))) # to 3 in that case
sum_rates = np.sum(values,axis=1)
sns.lineplot(values)
我还想让它显示平均值、中位数和四分位数。你可以用这样的东西
import pandas as pd
filname = r'path/to/file'
df = pd.read_csv(filename, header=None)
print df
0 1 2 3 4 5
0 0 3 4 2 4 2
1 2 1 7 2 8 3
2 3 4 6 2 5 1
# to get sum
sum = df.sum(axis=1)
print sum
0 15
1 23
2 21
# to plot data
df.plot()
您的答案的问题是,数据加载为二维,而不是三维。例如,我想在这里对每一行的每一个非重叠对求和。
# to get count, mean, std ...
print df.describe()
0 1 2 3 4 5
count 3.000000 3.000000 3.000000 3.0 3.000000 3.0
mean 1.666667 2.666667 5.666667 2.0 5.666667 2.0
std 1.527525 1.527525 1.527525 0.0 2.081666 1.0
min 0.000000 1.000000 4.000000 2.0 4.000000 1.0
25% 1.000000 2.000000 5.000000 2.0 4.500000 1.5
50% 2.000000 3.000000 6.000000 2.0 5.000000 2.0
75% 2.500000 3.500000 6.500000 2.0 6.500000 2.5
max 3.000000 4.000000 7.000000 2.0 8.000000 3.0