python - c 下划线表达式 `c_` 究竟做了什么?

标签 python numpy

这似乎是某种水平连接,但我在网上找不到任何文档。这是一个最小的工作示例:

In [1]: from numpy import c_
In [2]: a = ones(4)
In [3]: b = zeros((4,10))    
In [4]: c_[a,b]
Out[4]: 
array([[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])

最佳答案

我花了很长时间才明白,但似乎我终于明白了。

您所要做的就是沿第二个轴添加。

让我们开始吧:

np.c_[np.array([1,2,3]), np.array([4,5,6])]

但是没有第二个轴。所以我们在心里加一个。

所以两个数组的形状都变成了(3,1)

因此结果形状将是 (3,1+1),即 (3,2)。 这是结果的形状 -

array([[1, 4],
       [2, 5],
       [3, 6]])

另一个例子:

np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])]

形状:

np.array([[1,2,3]]) = 1,3

np.array([[4,5,6]]) = 1,3

0 所以我们可以认为它是 [[0]] = 1,1

所以结果 1,3+1+1+3 = 1,8

这是结果的形状:array([[1, 2, 3, 0, 0, 4, 5, 6]])

关于python - c 下划线表达式 `c_` 究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894323/

相关文章:

python - 如何更改 numpy datetime64 中的年份值?

python - Django MTM 字段 : limit_choices_to = other_ForeignKeyField_on_same_model?

python - 使用异步服务器的长时间运行的任务

python - 从 PyPI : root files not installed 安装包时出现问题

python - 没有名为 'cv2.cv2' 的模块

python - 如何将具有不同列长度的数据表转换为python中的箱线图

python - 使用 __numpy_ufunc__()

python - Numpy 将二维数组的列分配为另一个数组的索引列的总和

python - 将两个列表(其中一个是列表的列表)映射到字典中

python - 根据排列替换 Numpy 数组中的值