Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 迭代文件夹中的文件以创建numpy数组_Arrays_File_Text_Numpy - Fatal编程技术网

Arrays 迭代文件夹中的文件以创建numpy数组

Arrays 迭代文件夹中的文件以创建numpy数组,arrays,file,text,numpy,Arrays,File,Text,Numpy,这是我的第一篇帖子,我对编程非常陌生- 我有一个文件夹,其中包含一些要处理的文件,然后创建一个numpy数组,其中包含我需要执行的值: listing = os.listdir(datapath) my_array=np.zeros(shape=(0,5)) for infile in listing: dataset = open(infile).readlines()[1:] data = np.genfromtxt(dataset, usecols=(1,6,7,8,9))

这是我的第一篇帖子,我对编程非常陌生- 我有一个文件夹,其中包含一些要处理的文件,然后创建一个numpy数组,其中包含我需要执行的值:

listing = os.listdir(datapath)
my_array=np.zeros(shape=(0,5))
for infile in listing:
    dataset = open(infile).readlines()[1:]
    data = np.genfromtxt(dataset, usecols=(1,6,7,8,9))
    new_array = np.vstack((my_array, data))
虽然我在listing datapath文件夹中有2个文件,但新的数组覆盖了数据,只给出了第二个文件的值 有什么想法吗?
谢谢,

如果我理解正确,您的问题的解决方案只是您需要将其添加到我的\u阵列,而不是新阵列

只需将最后一行替换为这一行即可:

my_array = np.vstack((my_array, data))

然而,我不认为这是最有效的方法。既然您知道该文件夹中有多少个文件,只需预定义数组的大小并填充其内容。

如果我理解正确,您的问题的解决方案就是只需将其锁定到我的数组,而不是新的数组

只需将最后一行替换为这一行即可:

my_array = np.vstack((my_array, data))

然而,我不认为这是最有效的方法。由于您知道该文件夹中有多少文件,只需预定义数组的大小并填充其内容。

以下是从特定文件夹读取numpy数组中所有文件所需执行的操作。我有一个只包含.txt文件的文件夹测试。My follow file.py与所有.txt文件位于同一测试文件夹中。每个.txt文件包含一个4x4矩阵/数组。运行脚本后,获得的矩阵将是[Nx4x4]的numpy数组

import numpy as np
from glob import glob

def read_all_files():
   file_names = glob('test/*')
   arrays = [np.loadtxt(f) for f in file_names]
   matrices = np.concatenate(arrays)

下面是从特定文件夹读取numpy数组中的所有文件所需执行的操作。我有一个只包含.txt文件的文件夹测试。My follow file.py与所有.txt文件位于同一测试文件夹中。每个.txt文件包含一个4x4矩阵/数组。运行脚本后,获得的矩阵将是[Nx4x4]的numpy数组

import numpy as np
from glob import glob

def read_all_files():
   file_names = glob('test/*')
   arrays = [np.loadtxt(f) for f in file_names]
   matrices = np.concatenate(arrays)

感谢超立方体-它工作得很好,让我觉得它是多么简单-我实际上试图预定义数组np.zero,但后来我没能正确填充它-我要么追加/添加行,或者用一个新的数组替换整个数组…感谢超立方体-它工作得很好,让我觉得很简单-我实际上试图预定义数组np.zero,但没有正确填充它-我要么追加/添加行,要么用一个新数组替换整个数组…如果你有一个Ndarray的Python列表,然后还可以调用np.arrayarray而不是concati如果有一个Ndarray的Python列表,那么也可以调用np.arrayarray而不是concat