python - numpy 排列的 2D

标签 python arrays numpy tile

<分区>

我想建立两个二维数组

a = [[0, 0, 0, 0, 0, 0],
     [1, 1, 1, 1, 1, 1],
     [2, 2, 2, 2, 2, 2],
     [3, 3, 3, 3, 3, 3],
     [4, 4, 4, 4, 4, 4],
     [5, 5, 5, 5, 5, 5]]

b = [[0, 1, 2, 3, 4, 5],
     [0, 1, 2, 3, 4, 5],
     [0, 1, 2, 3, 4, 5],
     [0, 1, 2, 3, 4, 5],
     [0, 1, 2, 3, 4, 5],
     [0, 1, 2, 3, 4, 5]]

但是我不能使用 for 循环。我知道我可以使用 np.arange(5) 获得一个数组,但不确定如何将其转换为上面显示的 2 个二维数组。 任何帮助将不胜感激

最佳答案

您可以使用 numpy.mgridnumpy.meshgrid() :

np.mgrid[0:6, 0:6]
# array([[[0, 0, 0, 0, 0, 0],
#         [1, 1, 1, 1, 1, 1],
#         [2, 2, 2, 2, 2, 2],
#         [3, 3, 3, 3, 3, 3],
#         [4, 4, 4, 4, 4, 4],
#         [5, 5, 5, 5, 5, 5]],
# 
#        [[0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5]]])

np.meshgrid(np.arange(6), np.arange(6))
# [array([[0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5],
#         [0, 1, 2, 3, 4, 5]]),
#  array([[0, 0, 0, 0, 0, 0],
#         [1, 1, 1, 1, 1, 1],
#         [2, 2, 2, 2, 2, 2],
#         [3, 3, 3, 3, 3, 3],
#         [4, 4, 4, 4, 4, 4],
#         [5, 5, 5, 5, 5, 5]])]

然后简单地解压结果

a, b = np.mgrid[0:6, 0:6]    

关于python - numpy 排列的 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58872821/

相关文章:

python - 在 python 中使用 if 语句有条件地增加整数计数

image - 过滤 numpy 数组并将数组重新堆叠为多维矩阵

c# - 将 Numpy 代码翻译成 C#

java - Java 十六进制字符串转换为字节

c++ - 可以单独声明函数数组的元素吗?

c - 使用 C 中的常量列表初始化多维数组的一部分

python - 混洗范围迭代器

python - 过滤 Pandas 中的数据返回错误 'method' 对象不可迭代

用于在 Azure 中创建订阅的 Python 代码

python - 在多核机器上对 sklearn.naive_bayes.MultinomialNB 执行网格搜索不会使用所有可用的 CPU 资源