2 回答

TA贡献1806条经验 获得超5个赞
注意检查:
NumPy的数组类被称作ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。更多重要ndarray对象属性有:
ndarray.ndim
数组轴的个数,在python的世界中,轴的个数被称作秩
ndarray.shape
数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性
ndarray.size
数组元素的总个数,等于shape属性中元组元素的乘积。
ndarray.dtype
一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。
ndarray.itemsize
数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).
ndarray.data
包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。

TA贡献1891条经验 获得超3个赞
首先:python中的列表是不能这样索引的,报的错翻译过来是:列表的索引要么是切片要么是数字而不能是一个列表。
1 数字:如 y[1], y[3], y[-1](取倒数第一个元素)
2 切片:如y[1:3](取第1到第3个元素),y[:3](取前三个元素),y[3:](取第三个元素之后的所有元素)
其次,要实现你所需的功能,有两种方案:
1 使用循环来实现
1 2 3 4 5 6 | x = [0,1,2,3,4,5,6] y = [11,22,33,44,55,66,77] random.shuffle(x) y2 = [] # 存储结果 for i in range(len(x)): y2.append(y[x[i]]) |
2 使用numpy实现,numpy是python中常用的数据分析库,需要单独安装
1 2 3 4 5 6 7 | import numpy as np import random
x = [0,1,2,3,4,5,6] y = np.array([11,22,33,44,55,66,77]) random.shuffle(x) y[x] |
添加回答
举报