2024-04-28 02:38:33 发布
网友
我有一个100x100阵列和另一个50x50阵列。如何将整个50x50阵列分配给较大阵列的一部分
示例:
x = zeros((50, 50)) y = ones((100, 100)) x[0:50, 0:50] = y[20:70, 40:90] # x should now be all 1s
如果你的“数组”是一个二维的列表,那么用一个简单的语句就不可能做到这一点(你可以创建一个列表,但我认为它是不可读的),这个解决方案迭代较小的列表,一次替换一行/片。下面假设“切片”适合较大的数组。您应该为此添加检查,否则当您尝试在较大数组的限制之外写入时,将得到IndexError
IndexError
def replace_2d_list_slice(larger_list, smaller_list, row_start, column_start): for i, row in enumerate(smaller_list, start=row_start): larger_list[i][column_start:column_start + len(row)] = row replace_2d_list_slice(larger_list, smaller_list, 10, 10)
试试这个:
larger[:50, :50] = smaller
它将整个smaller数组分配给larger数组的一个片。你知道吗
smaller
larger
示例:
如果你的“数组”是一个二维的列表,那么用一个简单的语句就不可能做到这一点(你可以创建一个列表,但我认为它是不可读的),这个解决方案迭代较小的列表,一次替换一行/片。下面假设“切片”适合较大的数组。您应该为此添加检查,否则当您尝试在较大数组的限制之外写入时,将得到
IndexError
试试这个:
它将整个
smaller
数组分配给larger
数组的一个片。你知道吗相关问题 更多 >
编程相关推荐