Python 如何在文件中写入字符串和numpy数组?
我正在计算从目录中读取的图像的特征,我想将图像路径和相应的特征写入一个文件中,用空格分隔。以这种方式需要输出Python 如何在文件中写入字符串和numpy数组?,python,numpy,Python,Numpy,我正在计算从目录中读取的图像的特征,我想将图像路径和相应的特征写入一个文件中,用空格分隔。以这种方式需要输出 /path/to/img1.jpg 1 0 0 1 3.5 0.2 0 /path/to/img2.jpg 0 0 0.5 2.1 0 0.7 ... 下面是我代码的一部分 features.open('file.txt', 'w') for fname in fnmatch.filter(fileList, '*.jpg'): image = '/path/to/image'
/path/to/img1.jpg 1 0 0 1 3.5 0.2 0
/path/to/img2.jpg 0 0 0.5 2.1 0 0.7
...
下面是我代码的一部分
features.open('file.txt', 'w')
for fname in fnmatch.filter(fileList, '*.jpg'):
image = '/path/to/image'
# All the operations are here
myarray = [......] # array of dimensions 512x512
myarray.reshape(1, 512*512) # Reshape to make it a row vector
features.write(image + ' '.join(str(myarray)))
features.write('\n')
features.close()
但产量正在以惊人的速度增长
/path/to/img1.jpg[[0 0 1.0 2 3]]
/path/to/img2.jpg[[1.2 0 1.0 2 0.3]]
你的问题在于以下陈述:
>>> ' '.join(str(np.array([1,2,3])))
'[ 1 2 3 ]'
首先将数组转换为字符串格式
>>> str(np.array([1,2,3]))
'[1 2 3]'
然后用空格连接字符串的元素(单个字符)
相反,您需要将numpy数组的各个元素转换为字符串列表,例如使用 只有这样,才能将结果字符串列表中的元素连接起来:
>>> ' '.join(map(str, np.array([1,2,3])))
'1 2 3'
下一个问题来自这样一个事实,即您拥有的numpy数组实际上是二维的:
>>> map(str, np.array([[1,2,3]]))
['[1 2 3]']
这很容易解决,因为您已经使用重塑
将其转换为一行。因此,只需将map
应用于第一行:
>>> ' '.join(map(str, np.array([[1,2,3]])[0]))
'1 2 3'
你的问题在于以下陈述:
>>> ' '.join(str(np.array([1,2,3])))
'[ 1 2 3 ]'
首先将数组转换为字符串格式
>>> str(np.array([1,2,3]))
'[1 2 3]'
然后用空格连接字符串的元素(单个字符)
相反,您需要将numpy数组的各个元素转换为字符串列表,例如使用 只有这样,才能将结果字符串列表中的元素连接起来:
>>> ' '.join(map(str, np.array([1,2,3])))
'1 2 3'
下一个问题来自这样一个事实,即您拥有的numpy数组实际上是二维的:
>>> map(str, np.array([[1,2,3]]))
['[1 2 3]']
这很容易解决,因为您已经使用重塑
将其转换为一行。因此,只需将map
应用于第一行:
>>> ' '.join(map(str, np.array([[1,2,3]])[0]))
'1 2 3'
你能给“不恰当”下定义吗?一点也不?输出是什么样子的?你能定义“不正确”吗?一点也不?输出是什么样子的?