TypeError: slice indices must be integers or None or have an __index__ method
原因1:存在带除法的操作,“/”会生成浮点数,需要将除法符号“/”更改成“//”。
原因2:“[]”中的数据变成了浮点数,不能作为数组下标,需要将数据强制转换为int整型类型。即int(你要转换的数据)。
Index Error: shape mismatch: indexing arrays could not be broadcast together with shapes (100,) (100,10)
原因1:当使用其他整数类型的多维数组,访问numpy多维数组时,用于索引的数组需要具有相同的形状。
原因2:索引必须是方阵,如果将上面的row和col改成一样的长度就不会报错。
a = np.arange(90).reshape(9, 10) """ a: array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34, 35, 36, 37, 38, 39], [40, 41, 42, 43, 44, 45, 46, 47, 48, 49], [50, 51, 52, 53, 54, 55, 56, 57, 58, 59], [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], [70, 71, 72, 73, 74, 75, 76, 77, 78, 79], [80, 81, 82, 83, 84, 85, 86, 87, 88, 89]]) """ row = [0, 2, 5, 6, 7, 8] col = [1, 3, 5, 6, 7, 8, 9] # 错误 goal = a[row, col] # 正确 temp = a[row, :] goal = temp[:, col] # 对于更高的维度 a = np.arange(4*5*7*3).reshape(4, 5, 7, 3) # 各个维度的选择 p1 = [0, 2] p2 = [0, 3, 4] p3 = [1, 2, 5, 6] p4 = [0, 1] P = [p1, p2, p3, p4] # N步走 temp = a for i, p in enumerate(P): s = 'temp['+ ':,'*i + str(p) + ',:'*(len(P)-i-1) + ']' """ s由三部分组成: p为当前选择的维度 (第i维) p之前用':' (共有i维) p之后用':' (共有 len(P)-i-1 维) """ # print(s) temp = eval(s) '''循环结束后得到的temp即为P选出来的目标数组''' # eval() 函数用来执行一个字符串表达式,并返回表达式的值
标签:10,错误,temp,Python,笔记,数组,维度,col,row From: https://www.cnblogs.com/fengzlj/p/16755339.html