Python csv库写入点而不是实际数组
我想在csv文件中写3列。一个带数字,一个带目的(培训/测试),第三个带Python csv库写入点而不是实际数组,python,python-3.x,Python,Python 3.x,我想在csv文件中写3列。一个带数字,一个带目的(培训/测试),第三个带numpy数组 我试过这个密码 打开('resources/new_file.csv','w',newline='')作为csvfile: 行_writer=csv.writer(csvfile,分隔符=',') 对于i,枚举中的行(数据): image=np.fromstring(行,dtype='uint8',sep='') 图像=np.重塑(图像,(48,48)) x_列[i]=图像 img=图像 face_casca
numpy
数组
我试过这个密码
打开('resources/new_file.csv','w',newline='')作为csvfile:
行_writer=csv.writer(csvfile,分隔符=',')
对于i,枚举中的行(数据):
image=np.fromstring(行,dtype='uint8',sep='')
图像=np.重塑(图像,(48,48))
x_列[i]=图像
img=图像
face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml'))
面=面\级联。检测多尺度(img,1.1,2)
对于面中的(x,y,w,h):
new_img=cv2.resize(img[y:y+h,x:x+w],dsize=(48,48),插值=cv2.INTER_CUBIC)
image\u str=new\u img.flatte()
row\u writer.writerow([情感[i],目的[i],形象]
csvfile.close()
但在打开csv文件后,每一行都是这样的(与…
)完全相同)
还要注意,在一些数字之间,有一个双空格
我怎么能把整件事写成这样呢
3,Training,49 72 85 12 0 [here every other number from array] 192 188 185
要获取数组中的每个数字,可以尝试设置
import sys
import numpy
numpy.set_printoptions(threshold=sys.maxsize)
我认为双空格是因为要计算数组中也存在的3位数字,因为您使用了flatten。如果未使用展平,则以截断形式显示,并带有空格以说明可读性。在
image\u str=new\u img.flatte()
之后,请添加print(image\u str)
;这给了您什么?“”.join(map(str,image_str))
?是的,因为image_str
是一个numpy.ndarray
,然后您只需编写array@wwii就这样。如果你把你的评论作为一个答案,我可以把它作为一个解决方案。
import sys
import numpy
numpy.set_printoptions(threshold=sys.maxsize)