如何将3个列表转换为1个3D Numpy数组

Str*_*247 5 python arrays numpy

我有三个列表要转换为一个列表.当我尝试以下时获得此错误

 A = numpy.array(X,Y,Z,dtype=float)
 ValueError: only 2 non-keyword arguments accepted
Run Code Online (Sandbox Code Playgroud)

我在这里没有看到任何说你只能给它两个论点的东西

http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html

这是代码

import numpy
from numpy import *

X = []
Y = []
Z = []

f = open(r'C:\My.txt')
f.readline()
for line in f:
 if line != '':
     line = line.strip()
     columns = line.split()
     x = columns[2]
     y = columns[3]
     z = columns[4]
     X.append(x)
     Y.append(y)                #appends data in list
     Z.append(z)



A = numpy.array(X,Y,Z,dtype=float)
A.shape(3,3)
print(A)
Run Code Online (Sandbox Code Playgroud)

谢谢你

Chr*_*ris 5

尝试将三个列表作为元组传递:

A = numpy.array((X, Y, Z), dtype=float)
Run Code Online (Sandbox Code Playgroud)

numpy.array文档中签名numpy.array

numpy.array(object,dtype = None,copy = True,order = None,subok = False,ndmin = 0,maskna = None,ownmaskna = False)

即单个参数object是变成ndarray的,每个其他参数必须是一个关键字参数(因此你得到的错误信息),可用于自定义数组的创建.

编辑响应Surfcast23的评论,在IDE中我尝试了以下内容:

>>> import numpy

>>> x = [0, 0, 0, 0]
>>> y = [3, 4, 4, 3]
>>> z = [3, 4, 3, 4]

>>> A = numpy.array((x, y, z), dtype=float)
>>> A
array([[ 0., 0., 0., 0.],
       [ 3., 4., 4., 3.],
       [ 3., 4., 3., 4.]])
>>> A.shape
(3L, 4L)
Run Code Online (Sandbox Code Playgroud)