Python 如何以另一种方式在numpy中创建二维阵列?

Python 如何以另一种方式在numpy中创建二维阵列?,python,pandas,numpy,Python,Pandas,Numpy,我已使用numpy和熊猫创建了一个二维阵列,如下所示: import numpy as np import pandas as pd data = np.array([['','A','B','C'], ['0','1','2','3'], ['1','4','5','6'], ['2','7','8','9']]) print(pd.DataFrame(data=data[1:,1:],

我已使用numpy和熊猫创建了一个二维阵列,如下所示:

import numpy as np
import pandas as pd 

data = np.array([['','A','B','C'],
            ['0','1','2','3'],
            ['1','4','5','6'],
            ['2','7','8','9']])

print(pd.DataFrame(data=data[1:,1:],
              index=data[1:,0],
              columns=data[0,1:]))

我的问题是,有没有其他更简单的方法在numpy中创建2D数组并使用熊猫将其放入数据帧?

我认为您不需要分配
索引,因为它是从
0
len(df)
,同时使用混合数据类型的
numpy数组将导致问题,因为您输出的数据类型是
object
而不是int

pd.DataFrame({'A':[1,4,7],'B':[2,5,8],'C':[3,6,9]})
Out[1104]: 
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

我认为您不需要分配
索引
,因为它是从
0
len(df)
,同时使用带有混合数据类型的
numpy数组
会导致问题,因为您输出的数据类型是
对象
不是int

pd.DataFrame({'A':[1,4,7],'B':[2,5,8],'C':[3,6,9]})
Out[1104]: 
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
或直接列表:

>>> import pandas as pd
>>> pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=list('ABC'))
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
>>> 
或直接列表:

>>> import pandas as pd
>>> pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=list('ABC'))
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
>>> 

回答得好;)但是如何从
数据
到dict?@RafaelC IIUC*还有其他更简单的方法在numpy中创建2D数组*他需要一种新的方法来创建数据帧吗?不确定。。我想他想用比使用
pd.DataFrame(data=data[1:,1:],index=data[1:,0],columns=data[0,1:])更简单的方法从
data
创建一个数据框但是如何从
数据
到dict?@RafaelC IIUC*还有其他更简单的方法在numpy中创建2D数组*他需要一种新的方法来创建数据帧吗?不确定。。我认为他想从
data
创建一个数据帧,这比使用
pd.DataFrame(data=data[1:,1:,index=data[1:,0],columns=data[0,1:])更简单的方法创建numpy数组是什么意思?当然,不要将列和索引放在同一个数组中。通常数据是数字,列是文本。索引通常是数字的,但与数据的类型完全不同。他们不属于一起。@MadPhysician我的意思是,当我有更多的数据要输入时(当然,当你有1000000个数据时,会有另一种方法来输入),我不想像图中所示那样输入。所以我想问一个更简单的方法来获得相同的输出,你说的创建numpy数组的更简单的方法是什么意思?当然,不要将列和索引放在同一个数组中。通常数据是数字,列是文本。索引通常是数字的,但与数据的类型完全不同。他们不属于一起。@MadPhysician我的意思是,当我有更多的数据要输入时(当然,当你有1000000个数据时,会有另一种方法来输入),我不想像图中所示那样输入。因此,我想寻求一种更简单的方法来获得相同的输出