1. np.argsort()
返回数组值从小到大的索引值
举例:
x = np.array([3, 1, 2])
np.argsort(x)
# array([1, 2, 0])
2. np.flatnonzero()
该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index)
>>> x = np.arange(-2, 3)
>>> x
array([-2, -1, 0, 1, 2])
>>> np.flatnonzero(x)
array([0, 1, 3, 4])
还可以用来返回某个特定元素的位置
d = np.array([1,2,3,4,4,3,5,3,6])
haa = np.flatnonzero(d == 3)
print haa
3. Counter()
>>> from collections import Counter
>>> c = Counter('abcasd')
>>> c
Counter({'a': 2, 'c': 1, 'b': 1, 's': 1, 'd': 1})
>>> c.most_common(3)
[('a', 2), ('c', 1), ('b', 1)]
4. np.split()
X_train_folds = np.split(X_train, num_folds=5)
# X_train.shape = (5000,300)
# X_train_folds.shape = (5, 1000, 300)
5. np.concatenate()
concatenate((a1, a2, ...), axis=0)
按指定维度把多个ndarray连在一起, 最后维度减小了1
train_set = np.concatenate(X_train_folds[:i] + X_train_folds[i+1:])
# X_train_folds[:i].shape = (1,3)
# X_train_folds[i+1:].shape = (4,3)
# train_set.shape = (5,3)
6. mask = np.random.choice()
np.random.choice(a, 3, replace=False, p=None)
从a 中以概率P,随机选择3个, p没有指定的时候相当于是一致的分布. replace=Falseb表示不放回抽样, True表示放回抽样
>>> a = np.random.choice(10,4)
>>> a
array([6, 9, 5, 7])
7. python中range()和np.arange()函数
range(start, stop, step) —> 返回一个range object, 并且step步长只能是整数;
np.arange(start, stop, step) —> 返回一个ndarray, step可以是小数
8. np.prod()和np.linspace()
np.prod((2,3)) # 6
np.prod([2,4]) # 8 返回元素的乘积
np.linspace(2,3,5) # array([ 2. , 2.25, 2.5 , 2.75, 3. ])