numpy-slicing - 切片一个 Numpy 数组给出错误的结果
问题描述
我有一个 numpy 数组,我试图沿前两列和前两行切片,然后将它们设置为 0。
在我的代码中,您可以看到我尝试这样做的尝试。在将正确数量的数字设置为 0 方面,我遇到了无穷无尽的麻烦。
nums = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
nums[0:2,0:2] = 0
print(nums)
The output should be
[[0 0 0 0
0 0 0 0
0 0 11 12
0 0 15 16]]
My output is
[[ 0 0 3 4]
[ 0 0 7 8]
[ 9 10 11 12]
[13 14 15 16]]
任何关于它为什么不能正确显示的建议或见解将不胜感激。
解决方案
你应该做这样的操作:
nums = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
nums[0:2,:] = 0
nums[:, 0:2] = 0
print(nums)
那么输出应该是
[[0 0 0 0
0 0 0 0
0 0 11 12
0 0 15 16]]
推荐阅读
- c++ - 在调用 std::to_chars 之前,我怎么知道要分配多少个字符?
- javafx - Java FX 的粗体处理有什么问题?
- javascript - 如何在 JavaScript 函数中将数组打印到一个数组中?
- swift - Swift GEOJson 可编码对象
- netbeans - 可以在 NetBeans 11 中使用细而清晰的等宽字体吗?
- java - 如何使用自定义布局创建对话框弹出窗口?
- javascript - Vuejs路由刷新时重定向
- python - 如何冻结 Resnet50 中的特定层或阶段?
- xaml - 为什么 CommandBarFlyout 最多只显示十一个按钮?
- android - GridView 布局项目在滚动时分心