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

标签 python arrays numpy

我想将三个列表转换为一个列表。当我尝试以下操作时出现此错误

 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)

提前致谢

最佳答案

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

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)

关于python - 如何将 3 个列表转换为 1 个 3D Numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9886589/

相关文章:

php - 将数组从 SQL 传递到 Swiftmailer

numpy - 根据行号更改 2d numpy 数组中行的每个第 n 个元素

python - 如何在odoo中获取.rml报告中的字段值?

java - 将两个二维数组扩展为一个更大的数组

python - 询问长度为 2 的数组列表是否包含给定长度为 1 的数组时出现 ValueError

python - 在Python中给定NumPy数组的情况下,如何流式传输MP3 block ?

python - Numpy 数组操作

python - python 2.7.5多打印一个 '\n'

javascript - Django - 在获取 POST 后显示 Jsonresponse

python - Pyinstaller 中的多个隐藏导入