Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.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
Python 制作所有可能的对称4x4像素图像_Python_Arrays_Csv_Numpy_Iteration - Fatal编程技术网

Python 制作所有可能的对称4x4像素图像

Python 制作所有可能的对称4x4像素图像,python,arrays,csv,numpy,iteration,Python,Arrays,Csv,Numpy,Iteration,我被卡住了。。。 我计划制作所有可能的对称4x4像素图像。也就是说,图像的左侧是右侧的镜像。为此,我制作了所有可能的2x4像素图像,并将它们存储在2D数组列表中,因此第一项将如下所示,然后继续使用1而不是0: [[0,0], [0,0], [0,0], [0,0]] 然后,我的计划是迭代列表,通过反转每个阵列并将其与另一个阵列组合,创建4x4像素图像 最终的结果是我被卡住了!结果应该是一个.csv文件,其中每一行都是一个4x4像素的图像,如下所示: row1,row2,row3,row4

我被卡住了。。。 我计划制作所有可能的对称4x4像素图像。也就是说,图像的左侧是右侧的镜像。为此,我制作了所有可能的2x4像素图像,并将它们存储在2D数组列表中,因此第一项将如下所示,然后继续使用1而不是0:

[[0,0],
 [0,0],
 [0,0],
 [0,0]]
然后,我的计划是迭代列表,通过反转每个阵列并将其与另一个阵列组合,创建4x4像素图像

最终的结果是我被卡住了!结果应该是一个.csv文件,其中每一行都是一个4x4像素的图像,如下所示:

row1,row2,row3,row4
0000,0011,1100,0000
1101,1010,0101,1011
到目前为止,我得到的是:

import numpy as np
seq = itertools.product("01", repeat=8)
data = []
for s in seq:
    arr = np.fromiter(s,np.int8).reshape(4,2)
    data = np.append(data, arr)
np.savetxt("test.csv", data, delimiter=",")

但这只是开始。我已经试了一段时间了,我想我已经看不见自己了!有没有人有一个简洁的方法来管理这一点?

你可以尝试用这一行在你的图像中迭代,但不确定它有多“pythonic”:

'{0}{1}{1}{0},{2}{3}{3}{2},{4}{5}{5}{4},{6}{7}{7}{6}'.format(*seq[i])

这将获取序列列表,并为包含左侧图像的每个元组创建右侧图像。

在numpy中,您可以按如下方式旋转二维图像

image[::-1, ::-1]
要将两部分结合起来:

np.c_[image, image[::-1, ::-1]]
要获取所需的格式,请执行以下操作:

','.join(['{:04b}'.format(n[0]) for n in np.packbits(image, axis=-1) >> 4])

您的输出是什么样子的?