如何从Python中的数组中删除特定字符

时间:2019-02-21 15:42:45

标签: python

img = cv2.imread('img/dream.jpg')
(b,g,r)=cv2.split(img)
color = ('b','g','r')
b = cv2.calcHist([img],[0],None,[256],[0, 256])
g = cv2.calcHist([img],[1],None,[256],[0, 256])
r = cv2.calcHist([img],[2],None,[256],[0, 256])


for i, col in enumerate(color):
  histr = cv2.calcHist([img],[i],None,[256],[0, 256])
  plt.plot(histr, color = col)
  plt.xlim([0, 256])



with open('output.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow('BGR')
    for row in rows:
        writer.writerow(row)

我正在尝试读取图片,并显示每个像素的RGB计数。 在尝试将数据写入csv文件之前,一切都很酷。 看起来像这样:

B,G,R
[0.],[0.],[631788.]
[0.],[0.],[418355.]
[0.],[0.],[105815.]

我需要做的就是从数组中删除“ [”和“]”。

我是python新手,我不确定该数组是元组字典还是其他。

我尝试了replace()方法,但是它出现了一条错误消息 'numpy.ndarray'对象没有属性'replace'

2 个答案:

答案 0 :(得分:1)

您需要通过

list转换为String
list_string = ''.join(list_name)

如果您有matrix

您将需要

for item in list_outer:
  item = ''.join(item)

list_outer = ''.join(list_outer)

答案 1 :(得分:1)

数组中的每个值都在其自己的列表中。在python中,您可以使用索引访问列表的元素。

对于您而言,您可以使用以下方法转换列表数组(每个列表只有一个值i[0]

delisted_array = np.array([i[0] for i in your_array_of_lists])

此列表理解为:“从此数组中找到的每个(列表)的第一个索引中获取值,并将这些值放入列表中。”

例如。

In [70]: a = np.array([[1],[2]])

In [71]: a
Out[71]: 
array([[1],
       [2]])

In [72]: delisted_array = np.array([i[0] for i in a])

In [73]: delisted_array
Out[73]: array([1, 2])