2
回答
Python模块 Numpy
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   
有没有大神解释一下 numpy模块中 take()  和 dot() 两个函数的作用
举报
hanchi1017
发帖于4年前 2回/2K+阅
共有2个答案 最后回答: 3年前

Numpy是为了补充python而设计的,python的list内容元素可以是任意类型的,所以使用指针来保存,数值运算的时候这个比较耗资源;pyhton里面的array可以用来存数值,但只有一维的,Numpy于是定义了存储单一数据类型的多维数组。
numpy.take 就是选出源数组里面的指定位置元素组成新的数组,下面是源码docstring里的例子:

 
 >>> a = [4, 3, 5, 7, 6, 8] 
 >>> indices = [0, 1, 4] 
 >>> np.take(a, indices) 
 array([4, 3, 6]) 
 In this example if `a` is an ndarray, "fancy" indexing can be used. 
 >>> a = np.array(a) 
 >>> a[indices] 
 array([4, 3, 6]) 
 If `indices` is not one dimensional, the output also has these dimensions. 
 >>> np.take(a, [[0, 1], [2, 3]]) 
 array([[4, 3], 
 [5, 7]]) 
 """ 
dot函数是用来计算矩阵乘积的:
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])

一维数组时候计算的是点积,二维数组计算矩阵乘积。

--- 共有 2 条评论 ---
vincent_y回复 @hanchi1017 : axis是指轴,0的就是行 1 就是列,这个的结果是返回iold数组的2,3,4行 4年前 回复
hanchi1017请问 page = array([2, 3, 4]) iold.take(page, axis = 0) 中 axis是什么意思呢? 最后的结果是什么? 4年前 回复
顶部