python-3.x 如何在我定义的列表中选择特定元素?

von4xj4u  于 2023-02-20  发布在  Python
关注(0)|答案(2)|浏览(87)

我写了这段代码:

import numpy as np

a=0.142
c1=np.array([0,0])
c2=np.array([a,0]) #[nm]
a1= np.array([3/2*a,3**0.5/2*a])
a2= np.array([3/2*a,-3**0.5/2*a])

my_list = [] 
def Rnm_1():
    for n in range(10):
        for m in range(10):
            Rnm_1= c1 + (n*a1+m*a2)
            my_list.append(Rnm_1)
    return my_list

Rnm_1()这里给出了多个数组,我如何访问所有数组中的每个"第一项"?我想计算距离,我需要使用存储在这些数组中的所有x和y值。感谢您的帮助。

总结:

    • 我想知道如何访问每个数组的第一个值。**
wz3gfoph

wz3gfoph1#

1-维数组可以是index like python lists

import numpy as np

a = 0.142
c1 = np.array([0, 0])
c2 = np.array([a, 0]) #[nm]
a1 = np.array([3/2*a, 3**0.5/2*a])
a2 = np.array([3/2*a, -3**0.5/2*a])

def Rnm_1():
    my_list = [] 
    for n in range(10):
        for m in range(10):
            Rnm_1 = c1 + (n*a1+m*a2)
            my_list.append(Rnm_1)
    return my_list

my_arrays = Rnm_1()

for arr in my_arrays:
    first_item = arr[0]
    print(f"first item of array {arr}: {first_item}")
c9x0cxw0

c9x0cxw02#

你为什么不使用NumPy的所有方式:

a = 0.142
c1 = np.array([0, 0])
c2 = np.array([a, 0])
a1 = np.array([3/2 * a, 3**0.5 / 2 * a])
a2 = np.array([3/2 * a, -3**0.5 / 2 * a])

def Rnm_1(c1, a1, a2):
    r = np.arange(10)
    return c1 + np.outer(np.repeat(r, 10), a1) + np.outer(np.tile(r, 10), a2)

arr = Rnm_1(c1, a1, a2)
print(arr[:, 0])

arr[:, 0]会给予你arr的第一列,这似乎是你想要的,如果你真的需要列表中的数组(行),那么就做my_list = list(arr)

相关问题