我有三个列表要转换为一个列表。当我尝试以下操作时出现此错误
A = numpy.array(X,Y,Z,dtype=float)
ValueError: only 2 non-keyword arguments accepted
我在这里没有看到任何说明你只能给它两个论点的东西
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)
先谢谢
答案 0 :(得分:5)
尝试将三个列表作为元组传递:
A = numpy.array((X, Y, Z), dtype=float)
在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)
答案 1 :(得分:0)
我查看了你的代码,发现X,Y,Z缺少[]。该阵列不能将两个D阵列作为一个。尝试为数组添加[X,Y,Z],你将获得正确的答案。
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)