感谢以下提到的链接作者给予的帮助!
目录
numpy的reshape()函数(https://blog.csdn.net/zhanggonglalala/article/details/79356653)
bincount()函数(https://blog.csdn.net/xlinsist/article/details/51346523)
argsort()函数(https://blog.csdn.net/maoersong/article/details/21875705)
sum()函数(https://www.cnblogs.com/yyxayz/p/4033736.html)
multiply()函数、dot()函数(https://blog.csdn.net/itnerd/article/details/83444867)
关于不使用循环做欧氏距离的计算(https://blog.csdn.net/zhyh1435589631/article/details/54236643)
np.random.choice()函数
np.random.choice(a, size=None, replace=True, p=None)
从一维array a 或 int a 中,以概率p随机选取大小为size的数据,replace表示是否重用元素,即抽取出来的数据是否放回原数组中,默认为true(抽取出来的数据有重复)
numpy.flatnonzero()函数
d=np.array([1,2,3,4,4,3,5,3,6])
x=numpy.flatnonzero(d==3)
print(x)
输出:
[2 5 7]
对于数组d,返回了其中值为3的元素的位置。
enumerate() 函数
enumerate(sequence, [start=0])
sequence -- 一个序列、迭代器或其他支持迭代对象,start -- 下标起始位置,返回的是对象。
seq = ['lrr', 'lxw', 'xca']
for i, element in enumerate(seq):
print i, element
输出结果:
0 lrr
1 lxw
2 xca
shape()函数
e.shape[0]只读取e的第一维长度即多少行,shape[1]是第二维的长度即多少列。
numpy的reshape()函数(https://blog.csdn.net/zhanggonglalala/article/details/79356653)
numpy.reshape(a,newshape,order='c'):其中a为待改变格式的数组,newshape是将要变成的形状,order=‘A’ OR 'F' OR 'C',其中为C时是按照行读和写,F时按照列读和写,A时若数据是以类Fortan的方式进行存储(在内存中)的时候,就按照F读取否则按照C读取。
xrange()函数、arange()函数和range()函数(https://blog.csdn.net/qianwenhong/article/details/41414809;http://www.nowamagic.net/academy/detail/1302446)
xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表
>>>a = xrange(0,100)
>>>print type(a)
>>>print a
>>>print a[0], a[1]
<type 'xrange'>
xrange(100)
0 1
arange函数生成的是array,而range函数生成的是[*****]。
a[:K]表示从第0个到第k个;a[1:]表示从第1个到最后一个
linalg.norm()求范数
array_split()函数
相比np.split(),split只能用来均等划分,而array_split可以不均等划分。
x = np.arange(7.0)
np.array_split(x, 3)
输出:[array([ 0., 1., 2.]), array([ 3., 4.]), array([ 5., 6.])]
>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]
bincount()函数(https://blog.csdn.net/xlinsist/article/details/51346523)
一种元素计数的方法,纯元素计数和带权值两种情况。详情见链接。
argsort()函数(https://blog.csdn.net/maoersong/article/details/21875705)
返回的是数组从小到大的索引值,参数设置:axis=1为按照行排序,axis=0为按照列排序。order可设置为升序或是降序,降序为-1。
sum()函数(https://www.cnblogs.com/yyxayz/p/4033736.html)
其中参数axis=1表示一行元素进行相加。axis=0表示纵向,列相加
multiply()函数、dot()函数(https://blog.csdn.net/itnerd/article/details/83444867)
一种给函数计时的方法
def time_function(f, *args):
"""
Call a function f with args and return the time (in seconds) that it took to execute.
"""
import time
tic = time.time()
f(*args)
toc = time.time()
return toc - tic