emm*_*ras 24 python numpy matrix
我有一个NumPy ndarray我想添加行/列标题.
数据实际上是7x12x12,但我可以这样表示:
A=[[[0, 1, 2, 3, 4, 5],
[1, 0, 3, 4, 5, 6],
[2, 3, 0, 5, 6, 7],
[3, 4, 5, 0, 7, 8],
[4, 5, 6, 7, 0, 9],
[5, 6, 7, 8, 9, 0]]
[[0, 1, 2, 3, 4, 5],
[1, 0, 3, 4, 5, 6],
[2, 3, 0, 5, 6, 7],
[3, 4, 5, 0, 7, 8],
[4, 5, 6, 7, 0, 9],
[5, 6, 7, 8, 9, 0]]]
Run Code Online (Sandbox Code Playgroud)
其中A是我的2x6x6阵列.
如何在第一行和第一列中插入标题,以便每个数组在我的CSV输出文件中看起来像这样?
A, a, b, c, d, e, f
a, 0, 1, 2, 3, 4, 5,
b, 1, 0, 3, 4, 5, 6,
c, 2, 3, 0, 5, 6, 7,
d, 3, 4, 5, 0, 7, 8,
e, 4, 5, 6, 7, 0, 9,
f, 5, 6, 7, 8, 9, 0
Run Code Online (Sandbox Code Playgroud)
现在,我所做的是使数组7x13x13并插入数据,使得我有一行零列,但我更喜欢字符串.
我想我可以写一个Excel宏来用字符串替换零.但是,问题是NumPy无法转换string为float,如果我尝试将这些零重新分配为我想要的字符串.
bmu*_*bmu 32
随着pandas.DataFrame.to_csv你可以写列和索引文件:
import numpy as np
import pandas as pd
A = np.random.randint(0, 10, size=36).reshape(6, 6)
names = [_ for _ in 'abcdef']
df = pd.DataFrame(A, index=names, columns=names)
df.to_csv('df.csv', index=True, header=True, sep=' ')
Run Code Online (Sandbox Code Playgroud)
会给你以下df.csv文件:
a b c d e f
a 1 5 5 0 4 4
b 2 7 5 4 0 9
c 6 5 6 9 7 0
d 4 3 7 9 9 3
e 8 1 5 1 9 0
f 2 8 0 0 5 1
Run Code Online (Sandbox Code Playgroud)
Phi*_*per 13
Numpy将处理n维数组的罚款,但可能的设施仅限于二维数组.甚至不确定您希望输出文件的外观.
许多希望命名列的人忽略了numpy 的recarray()功能.要知道的好东西,但只是"命名"一个维度.
对于两个维度,熊猫非常酷.
In [275]: DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6])],
.....: orient='index', columns=['one', 'two', 'three'])
Out[275]:
one two three
A 1 2 3
B 4 5 6
Run Code Online (Sandbox Code Playgroud)
如果输出是你试图在这里解决的唯一问题,我可能会坚持使用几行手写魔法,因为它比为一个功能安装另一个包的重量要小.
| 归档时间: |
|
| 查看次数: |
60575 次 |
| 最近记录: |