MachineLearning中numpy 常用操作技巧

数组移位

import numpy as np
a = np.arange(10)
b = np.roll(a, -1)
print(a)
print(b)
'''
[0 1 2 3 4 5 6 7 8 9]
[1 2 3 4 5 6 7 8 9 0]
'''

筛选array中出现次数最多的元素

c = np.array([1,2,5,9,9,9,3])
a = np.bincount(c)
# 它返回的是 [0,序列最大值] 在这个array中出现的次数。
d = np.argmax(np.bincount(c))
index = list(c).index(d)
'''
a:[0 1 1 1 0 1 0 0 0 3]
d:9
index:3
'''

删除某列数据

dataset=[[1,2,3],[2,3,4],[4,5,6]] 
import numpy as np 
dataset = np.delete(dataset, -1, axis=1) 
''' 
array([[1, 2], 
  [2, 3], 
  [4, 5]])
'''

快速判断两个N*1的矩阵是否相等

import numpy as np
a = np.array([
    [1], [3], [3]
])
b = np.array([
    [1], [2], [3]
])
m = a.shape[0]
aggErrors = np.multiply(np.mat(a) != np.mat(b), np.ones(a.shape))
print('wrong index:', aggErrors)
print('wrong nums:', aggErrors.sum())
'''
wrong index: 
[[0.]
 [1.]
 [0.]]
wrong nums: 1.0
'''

生成满足多元高斯分布的数据

import numpy as np
# 各个维度的均值
mu1_fact = (0, 0, 0)
# 协方差矩阵
cov_fact = np.identity(3)
positive_data = np.random.multivariate_normal(mu1_fact, cov_fact, 400)
'''
[[-1.84565134  0.64334784  0.07752541]
 [ 0.42888124  1.26704032  1.0359175 ]
 [-1.73487344  0.12276851 -0.50163476]
 ...
 [-0.82389061 -0.35710593 -0.01775249]
 [ 0.49466037  0.03923352  0.69746271]
 [-0.83899052 -0.73179449  0.60391842]]
'''

将维度为(3,)的一维ndarray数组扩展为(n*3)维的矩阵

import numpy as np

n = 3
y1 = np.array([
    2, 2, 5
])
print(np.tile(y1, (n, 1)))
'''
[[2 2 5]
 [2 2 5]
 [2 2 5]]
'''
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,182评论 0 18
  • 介绍 NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和...
    喔蕾喔蕾喔蕾蕾蕾阅读 1,807评论 0 5
  • qq:875880047 NumPy简介 • 官网链接:http://www.numpy.org/ • NumPy...
    d76d0c9d2b04阅读 604评论 0 2
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,619评论 1 13
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,257评论 0 5