python - Numpy索引和新数组的创建
问题描述
我试图了解 print 语句中发生了什么。我知道正在创建索引以创建 2D 数组但是,我不明白顺序
x = np.arange(0,2*np.pi,0.001)
X = np.concatenate(([x], [np.ones(y.shape[0])]), axis=0)
print(X[[[0,1],[0,1]],[[0,0],[-1,-1]]])
产生:
array([[0. , 1. ],
[6.283, 1. ]])
解决方案
我查看了文档,我认为下面的示例应该解释该索引:
应使用高级索引从 4x3 数组中选择角元素。因此,需要选择列是 [0, 2] 之一并且行是 [0, 3] 之一的所有元素。要使用高级索引,需要明确选择所有元素。使用前面解释的方法可以写:
x = array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]])
rows = np.array([[0, 0],
[3, 3]], dtype=np.intp)
columns = np.array([[0, 2],
[0, 2]], dtype=np.intp)
x[rows, columns]
最后一行给
array([[0, 2],
[9, 11]])
您问题中的代码似乎与该示例执行相同的操作(但使用其他值),但直接抨击索引而不是创建rows
and columns
。
X[[[0, 1], [0, 1]], [[0, 0], [-1, -1]]]
可能被读作 get 元素,从0
: (在0
第 th 或1
st 行)和(在0
th 或最后一列)开始计数
推荐阅读
- android - 手机休眠时如何使广播接收器在MIUI上工作?
- google-chrome - 谷歌浏览器需要时间来初始化
- javascript - 从嵌套列表项类 javascript 中获取文本内容
- node.js - 在firebase云消息传递中发送带有图像的通知在nodeJS中不起作用
- apache-spark - 无法在 Spark 中安装 master
- node.js - 在 Firebase Cloud Functions 中安装私有 GitHub npm 包
- javascript - 在 id 相同的数组中添加值
- database - TDengine 数据库是否支持表/列名中的特殊字符?
- python - Pandas 中每个时间间隔包含多少条记录?
- python - 如何从数据框中计算事件的相对频率?