Python 创建一个numpy数组并更新它';在每次迭代中都有一个值

Python 创建一个numpy数组并更新它';在每次迭代中都有一个值,python,arrays,csv,numpy,Python,Arrays,Csv,Numpy,我正在使用一个视频处理工具,需要将处理数据从每一帧输入到一个数组中 for p in det.read(frame, fac): point_values = np.array([]) for j, (x, y) in enumerate(p): #iteration through points point_values = np.append(point_values,y) point_values = np.append(point

我正在使用一个视频处理工具,需要将处理数据从每一帧输入到一个数组中

for p in det.read(frame, fac):  

    point_values = np.array([])

    for j, (x, y) in enumerate(p):  #iteration through points
        point_values = np.append(point_values,y)
        point_values = np.append(point_values,x)
此代码在每一帧中再次运行。我希望“point_values=np.array([])重置数组,然后再次开始填充

我不确定我的逻辑是错误的还是语法问题。

您的代码会:

In [77]: p = [(0,0),(0,2),(1,0),(1,2)]
In [78]: arr = np.array([])
In [79]: for j,(x,y) in enumerate(p):
    ...:     arr = np.append(arr,y)
    ...:     arr = np.append(arr,x)
    ...:     
In [80]: arr
Out[80]: array([0., 0., 2., 0., 0., 1., 2., 1.])
没有语法错误。等效列表更快、更清晰:

In [85]: alist =[]
In [86]: for x,y in p: alist.extend((y,x))
In [87]: alist
Out[87]: [0, 0, 2, 0, 0, 1, 2, 1]

但你没有给出任何迹象表明这个行动应该如何适应更大的环境。您为每个
p
创建一个新的
点\u值,但不进行任何处理。

什么是
det
frame
fac
等?请添加更多详细信息和所需的输入输出示例。这样制作数组效率很低。如果要追加,应该使用python列表,或者应该实例化一个固定大小的空数组并按索引更改这些值。但是numpy阵列的设计不能有效地改变大小;这可能比使用常规python列表的
for
循环运行得慢得多。仅更改其值。@J…S p检测图像中的人脸。Frame是被分析的图像,fac是这里不使用的数据,但用于检测本身。对不起,我不是专业程序员,所以我仍然在这里了解通信的对错:)然后我使用np.linalg获得两点之间的136维点距离:
np.linalg.norm(point_num-point_值)