为了账号安全,请及时绑定邮箱和手机立即绑定

python中numpy的索引值为什么会这样

python中numpy的索引值为什么会这样

慕标琳琳 2019-07-11 10:06:08
python中numpy的索引值为什么会这样
查看完整描述

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
包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。



查看完整回答
反对 回复 2019-07-12
?
万千封印

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]


 

 


查看完整回答
反对 回复 2019-07-12
  • 2 回答
  • 0 关注
  • 472 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信