Python 访问np.array的部分
我想快速访问np.array元素,例如从0-6加10到结尾的索引。到目前为止,我已经尝试:Python 访问np.array的部分,python,numpy,Python,Numpy,我想快速访问np.array元素,例如从0-6加10到结尾的索引。到目前为止,我已经尝试: a[0:6,10:] 或 两者都给了我错误,第二个给了我:“TypeError:只有整数标量数组才能转换为标量索引” 编辑:concatenate仍然给我带来问题,所以我将在这里发布我的完整代码: Fold_5 = len(predictorX)/5 trainX = np.concatenate(predictorX[:3*int(Fold_5)],predictorX[4*int(Fold_5)])
a[0:6,10:]
或
两者都给了我错误,第二个给了我:“TypeError:只有整数标量数组才能转换为标量索引”
编辑:concatenate仍然给我带来问题,所以我将在这里发布我的完整代码:
Fold_5 = len(predictorX)/5
trainX = np.concatenate(predictorX[:3*int(Fold_5)],predictorX[4*int(Fold_5)])
预测器X是一个数组,其值如下
[[0.1,0.4,0.6,0.2],[..]....]
np.concatenate
接受一系列数组。试一试
np.concatenate([a[0:6],a[10:]])
或
np.concatenate
接受一系列数组。试一试
np.concatenate([a[0:6],a[10:]])
或
以下是获得所需子阵列的两种更简短的方法:
np.delete(a, np.s_[6:10])
及
以下是获得所需子阵列的两种更简短的方法:
np.delete(a, np.s_[6:10])
及
在:
0:6选择行,10:选择列。如果a
不是2d或不够大,则会导致错误
在
问题是争论的数量;它需要一个数组列表。第二个,如果给定,则理解为轴
,它应该是一个整数(因此是您的错误)
应该有用
另一个选项是使用列表编制索引
a[0,1,2,3,4,5,10,11,...]]
np.r
是构建此类列表的便捷小工具:
In [73]: np.r_[0:6, 10:15]
Out[73]: array([ 0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14])
它实际上是np.concatenate([np.arange(0,6),np.arange(10,15)])
不管是先索引后串联,还是先串联索引后串联索引。效率差不多np.delete
根据“delete”区域的大小和类型,从几种方法中进行选择,包括这些方法
在trainX
表达式中,向串联调用添加[]应该可以工作。但是,predictorX[4*Fold_5]
可能是个问题。您是否缺少一个:
(如10:example中所示)?如果只需要一个值,则需要将其转换为1d,例如predictor x[[4*Fold_5]]
Fold_5 = len(predictorX)//5 # integer division in py3
trainX = np.concatenate([predictorX[:3*Fold_5], predictorX[4*Fold_5:]])
在:
0:6选择行,10:选择列。如果a
不是2d或不够大,则会导致错误
在
问题是争论的数量;它需要一个数组列表。第二个,如果给定,则理解为轴
,它应该是一个整数(因此是您的错误)
应该有用
另一个选项是使用列表编制索引
a[0,1,2,3,4,5,10,11,...]]
np.r
是构建此类列表的便捷小工具:
In [73]: np.r_[0:6, 10:15]
Out[73]: array([ 0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14])
它实际上是np.concatenate([np.arange(0,6),np.arange(10,15)])
不管是先索引后串联,还是先串联索引后串联索引。效率差不多np.delete
根据“delete”区域的大小和类型,从几种方法中进行选择,包括这些方法
在trainX
表达式中,向串联调用添加[]应该可以工作。但是,predictorX[4*Fold_5]
可能是个问题。您是否缺少一个:
(如10:example中所示)?如果只需要一个值,则需要将其转换为1d,例如predictor x[[4*Fold_5]]
Fold_5 = len(predictorX)//5 # integer division in py3
trainX = np.concatenate([predictorX[:3*Fold_5], predictorX[4*Fold_5:]])
Fold_5 = len(predictorX)//5 # integer division in py3
trainX = np.concatenate([predictorX[:3*Fold_5], predictorX[4*Fold_5:]])