import numpy as np
X= np.array([[1, 11],
[2, 22],
[3, 33],
[4, 44],
[5 ,55]]) #numpy.array
batch= [1,2,3]
X_batch = X[batch,:]#该语法就是指定行batch的所有列值
print("batch=",batch,"X_batch=",X_batch)#array输出的print的数组不带有逗号而列表print输出的结果无论是区分列表的元素用逗号,列表的列表中的元素也即是所谓的列也是用逗号分隔
m= [[2, 22],[ 3, 33],[ 4, 44]]#list
print (m==X_batch) #逐个元素比较
print ("type(X_batch)",type(X_batch))
print ("type(m)",type(m))
print ("(m)",m)
R = X_batch+m #numpy.ndarray表示的矩阵与列表表示的矩阵可以相加
print(R)
输出:
batch= [1, 2, 3] X_batch= [[ 2 22]
[ 3 33]
[ 4 44]]
[[ True True]
[ True True]
[ True True]]
type(X_batch) <class 'numpy.ndarray'>
type(m) <class 'list'>
(m) [[2, 22], [3, 33], [4, 44]]
[[ 4 44]
[ 6 66]
[ 8 88]]
详解:
X_batch = X[batch,:]
该语法就是指定行batch的所有列值
可以通用2个矩阵加法 2个矩阵比较
区别点暂时没有看出有什么差异,只是print打印输出时的nummpy.ndarray的类型数据中无逗号,而python原生的list中会有逗号
矩阵取值比较灵活,类似点穴
比如下面的这2个
X_batch = X[batch,:] #取矩阵(多维数组)指定行的所有元素,其中batch为列表
y_batch = y[batch] #取一位数组指定下标的元素,其中batch为列表