我如何在所有数组的开头和末尾添加零
how can i add zero at the fist and end of all an array
我有一个这样的数组:
contact_map = array([[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]])
其中的每个元素都是这样的:
contact_map[19] = array([1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 0., 1., 1., 1., 1., 1.,
1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 0.,
0., 0., 0., 0., 0., 1., 0., 1., 1., 1., 1., 0., 0., 1., 1., 0., 0.,
0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 0., 0., 0., 0., 1., 1., 0.,
1., 1., 0., 0., 0., 1., 1., 0., 1., 0., 0., 0., 1., 1., 1., 1., 1.,
1., 0., 1., 0., 0., 0., 0., 1., 0., 0., 1., 0., 1., 1., 1.])
len(contact_map) = 224
len(contact_map[19]) =100
我想更改 contact_map 的所有元素,以便在每个元素的第一个和末尾添加“0”,例如将 contact_map[19] 更改为:
contact_map[19] = array([0.,1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 0., 1., 1., 1., 1., 1.,
1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 0.,
0., 0., 0., 0., 0., 1., 0., 1., 1., 1., 1., 0., 0., 1., 1., 0., 0.,
0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 0., 0., 0., 0., 1., 1., 0.,
1., 1., 0., 0., 0., 1., 1., 0., 1., 0., 0., 0., 1., 1., 1., 1., 1.,
1., 0., 1., 0., 0., 0., 0., 1., 0., 0., 1., 0., 1., 1., 1., 0,.])
len(contact_map[19]) = 102
依此类推,对于 contact_map[0]、contact_map[1]、....
谁能帮帮我?
您可以像下面这样使用 numpy.pad
:
>>> import numpy as np
>>> a = np.array([[1., 1., 1. , 1., 1., 1.],
[1., 1., 0. , 0., 1., 1.],
[0., 1., 0. , 0., 1., 1.]])
>>> a.shape
(3, 6)
>>> out = np.pad(a, [(0,0), (1, 1)], 'constant', constant_values=0)
# pad first dimension ^^^ ^^^
# ^^^ pad second dimension
# (first num for set how many pad at first
# second num for ... at last.)
>>> out.shape
(3,8)
>>> out
array([[0., 1., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 0., 0., 1., 1., 0.],
[0., 0., 1., 0., 0., 1., 1., 0.]])
您的输入:
contact_map = np.random.randint(0,2 , (224, 100))
print(len(contact_map))
# 224
print(len(contact_map[19]))
# 100
contact_map = np.pad(contact_map, [(0,0), (1, 1)], 'constant', constant_values=0)
print(len(contact_map[19]))
# 102
print(len(contact_map[0]))
# 102
我有一个这样的数组:
contact_map = array([[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]])
其中的每个元素都是这样的:
contact_map[19] = array([1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 0., 1., 1., 1., 1., 1.,
1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 0.,
0., 0., 0., 0., 0., 1., 0., 1., 1., 1., 1., 0., 0., 1., 1., 0., 0.,
0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 0., 0., 0., 0., 1., 1., 0.,
1., 1., 0., 0., 0., 1., 1., 0., 1., 0., 0., 0., 1., 1., 1., 1., 1.,
1., 0., 1., 0., 0., 0., 0., 1., 0., 0., 1., 0., 1., 1., 1.])
len(contact_map) = 224
len(contact_map[19]) =100
我想更改 contact_map 的所有元素,以便在每个元素的第一个和末尾添加“0”,例如将 contact_map[19] 更改为:
contact_map[19] = array([0.,1., 1., 1., 1., 1., 1., 1., 1., 0., 1., 1., 0., 1., 1., 1., 1., 1.,
1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 0.,
0., 0., 0., 0., 0., 1., 0., 1., 1., 1., 1., 0., 0., 1., 1., 0., 0.,
0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 0., 0., 0., 0., 1., 1., 0.,
1., 1., 0., 0., 0., 1., 1., 0., 1., 0., 0., 0., 1., 1., 1., 1., 1.,
1., 0., 1., 0., 0., 0., 0., 1., 0., 0., 1., 0., 1., 1., 1., 0,.])
len(contact_map[19]) = 102
依此类推,对于 contact_map[0]、contact_map[1]、....
谁能帮帮我?
您可以像下面这样使用 numpy.pad
:
>>> import numpy as np
>>> a = np.array([[1., 1., 1. , 1., 1., 1.],
[1., 1., 0. , 0., 1., 1.],
[0., 1., 0. , 0., 1., 1.]])
>>> a.shape
(3, 6)
>>> out = np.pad(a, [(0,0), (1, 1)], 'constant', constant_values=0)
# pad first dimension ^^^ ^^^
# ^^^ pad second dimension
# (first num for set how many pad at first
# second num for ... at last.)
>>> out.shape
(3,8)
>>> out
array([[0., 1., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 0., 0., 1., 1., 0.],
[0., 0., 1., 0., 0., 1., 1., 0.]])
您的输入:
contact_map = np.random.randint(0,2 , (224, 100))
print(len(contact_map))
# 224
print(len(contact_map[19]))
# 100
contact_map = np.pad(contact_map, [(0,0), (1, 1)], 'constant', constant_values=0)
print(len(contact_map[19]))
# 102
print(len(contact_map[0]))
# 102