我想使用numpy python创建一个由节点名称及其x y坐标组成的2D数组

时间:2018-10-10 04:33:12

标签: python python-3.x numpy

我想为一个不要求节点的输入创建一个2D数组,并为每个节点接受来自用户的2个值x坐标和y坐标并生成其2D数组,其中包含3列节点,x坐标,y坐标。

输入:

enter the number of nodes:3
10 12
12 13
5 6 

输出

[A 10 12
 B 12 13
 C 5 6 ]

1 个答案:

答案 0 :(得分:0)

定义2个功能:

def foo(node):
    return [node]+[int(i) for i in input('for node: %s: '%node).split()]

def foobar():
    n = input('enter the number of nodes:')
    n = int(n)
    alist=[]
    for i,n in zip(range(n),'ABCDEF'):
        alist.append(foo(n))
    return alist

并获得一个列表列表,每个列表基于您的输入:

In [348]: foobar()
enter the number of nodes:3
for node: A: 10 12
for node: B: 12 13
for node: C: 5 6
Out[348]: [['A', 10, 12], ['B', 12, 13], ['C', 5, 6]]

混合使用节点名称字符串和数字不能构成一个很好的numpy数组。

它可以变成字符串数组。或object dtype数组。或结构化数组。或者更好的是,一个节点名称数组,另一个只有2列的2d坐标。