0

我不明白什么时候是求和运算或者只是连接两个数组

x = np.arange(10)
x
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

x[4]=44
x
#array([ 0,  1,  2,  3, 44,  5,  6,  7,  8,  9])

xs=np.split(x,5)
xs
#[array([0, 1]), array([2, 3]), array([44,  5]), array([6, 7]), array([8, 9])]

这是什么形状?

xs=np.split(x,5)
xs
#[array([0, 1]), array([2, 3]), array([44,  5]), array([6, 7]), array([8, 9])]

i=2
xscn = np.concatenate((xs[:i]+xs[i+1:]))
xscn
#array([0, 1, 2, 3, 6, 7, 8, 9])

“所以为什么它没有对数组求和,只是把它们放在一边(不是 ariane grande 哈哈哈”

f=(xs[:i]+xs[i+1:])
f

#[array([0, 1]), array([2, 3]), array([6, 7]), array([8, 9])]

所以它只是把一个数组一个接一个。

cc=np.concatenate(f)   
cc  
#array([0, 1, 2, 3, 6, 7, 8, 9])

ff=xs[:i]+xs[i+1:]
ff
#[array([0, 1]), array([2, 3]), array([6, 7]), array([8, 9])]

因此,当它添加并且仅设置一个列表时,我也无法键入形状。

4

1 回答 1

1
  1. type(np.split(x, 5)) == list, 和lists 没有shape, 但你可以找到他们的lengths;
  2. xs是 a list,因此添加两个列表将它们连接起来:

    xs[:i]+xs[i+1:] == [array([0, 1]), array([2, 3]), array([6, 7]), array([8, 9])]
    

    然后你concatenate将所有这些微小的阵列合二为一,这样你就可以恢复原来的阵列。

  3. 同上的原因
  4. 同上的原因

问题是,Pythonlist不是NumPy ,并且表现ndarray不同。

于 2018-04-19T19:15:25.497 回答