Python 中的numpy 库

这里写图片描述


这里写图片描述


这里写图片描述

待总结

用scikit-learn和pandas学习线性回归

用scikit-learn和pandas学习Ridge回归


待整理的

Numpy & Pandas

numpy——主要对其 N 维数组对象有用 http://www.numpy.org/


Pandas数据转为 numpy数据

df_numpyMatrix = df.as_matrix()
df_numpyMatrix=df.values
a=([3.234,34,3.777,6.33])#a为python的list类型
#将a转化为numpy的array:  np.array(a)array([  3.234,  34.   ,   3.777,   6.33 ])
#将a转化为python的list
a.tolist()

python中list与array互相转换

u = array([[1,2],[3,4]])
m = u.tolist()   #转换为list
m.remove(m[0])    #移除m[0]
m = np.array(m)    #转换为array

numpy库是数值计算,NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作。NumPy为Python提供了快速的多维数组处理的能力,但是它不能用来做各种科学计算,这时候就需要scipy了。


NumPy小抄


#array initialization
import numpy as np
np.array([2, 3, 4])
np.empty(20, dtype=np.float32)
np.zeros(200)
np.ones((3,3), dtype=np.int32)
np.eye(200)
np.zeros_like(a)
np.linspace(0., 10., 100)  # 100 points from o to 10
np.arange(0, 100, 2) 
np.logspace(-5, 2, 100)    #100 log-spaces points between -5 and 2
np.copy(a)                 # copy array to new memory
#数学本质是一种截断.clip的第一个参数表示目标区间最小值,第二个参数表示最大值,原始序列凡小于这个最小值的被这个最小值所替换,凡大于这个最大值的被这个最大值替换,必须指定一个参数,则另一个参数默认为∞。
np.clip()                 
import numpy as np
array = np.array([[1,2,3],[2,3,4]])
print(array)
print('number of dim:',array.ndim) #矩阵的维度
print('shape:',array.shape) # 矩阵的大小
print('size:',array.size) #矩阵的元素个数
# 数组的type
a = np.array([2,3,4],dtype=np.int64)
print(a.dtype)
a = np.array([2,3,4],dtype=np.float)#default is float64
print(a.dtype)
a = np.array([2,3,4],dtype=np.float32)
print(a.dtype)
# 创建各种各样的array矩阵和数组a = np.array([2,3,5])
print(a)a = np.zeros((3,4),dtype=np.int32) #生成一个零矩阵
a = np.ones((3,4),dtype=np.int64)# 生成一个单位矩阵
a = np.empyt((3,4))# 生成一个空矩阵a = np.arange(10,20,2)#生成一个数列,从1020,步长为2,有序数列
a = np.arange(12).reshape((3,4)) #生成一个矩阵,可定义shape
a = np.linspace(1,10,20).reshape((4,5)) #生成一个从110的数列,有20段,有序矩阵。class_pred = np.array([])
class_actual=np.array([])
ss = np.array([]).reshape(-1,2)array([], dtype=float64)
array([], dtype=float64)
array([], shape=(0, 2), dtype=float64)print(class_pred.shape, type(class_pred), class_actual.shape, type(class_actual), ss.shape, type(ss))((0,), <type 'numpy.ndarray'>, (0,), <type 'numpy.ndarray'>, (0, 2), <type 'numpy.ndarray'>)

Reading/ Writing files



np.fromfile(fname/object, dtype=np.float32, count=5)
np.loadtxt(fname/object, skiprows=2, delimiter=',')

indexing


a = np.arange(100)
a[:3] = 0
a[2:5] = 1  #set indices 2-4 to 1
a[start:stop:step]
a[None, :]
a[[1, 1, 3, 8]]
a = a.reshape(10, 10)  # transform to 10 x 10 matrix
a.T           #return transposed view
b = np.transpose(a, (1,0))
a[a<2]
#索引
import numpy as np
A =np.arange(2,14).reshape((3,4))
print(A)print(np.argmin(A))
print(np.argmax(A))print(np.mean(A))
print(A.mean())
print(np.average(A))print(np.median(A))print(A)
print(np.cumsum(A)) #逐步累加print(np.diff(A)) #前后之差,类差print(np.nonzero(A))print(np.sort(A))print(np.transpose(A)) #矩阵的转置
print(A.T)print((A.T).dot(A)) # A'Aprint(np.clip(A,5,9)) #矩阵的截断,小于5为5,大于9的为9import numpy as np
A = np.arange(3,15)
print(A)print(A[3])A = np.arange(3,15).reshape((3,4))
print(A)print(A[3])#输出1行1列
print(A[1][1])
print(A[1,1])print(A[2,:]) #2行
print(A[:,1])#1列print(A[1,1:3])#输出每一行
for row in A:print(row)# 输出一列
for column in A.T:print(column)#输出每一个元素
print(A.flatten()) #返回所有值for item in A.flat:print(item)

array properties and operations


a.shape
len(a)
a.ndim
a.sort(axis=1)
a.flatten()
a.conj()
a.astype(np.int16)#numpy中的数据类型转换,不能直接改原数据的dtype!  只能用函数astype()
np.argmax(a, axis=1)
np.cumsum(a)
np.any(a)
np.all(a)
np.argsort(a, axis =1)
np.linalg.norm
顾名思义,linalg=linear+algebra,norm则表示范数,首先需要注意的是范数是对向量(或者矩阵)的度量,是一个标量(scalar):

numpy数据类型dtype转换,astype

a = np.random.random(4)
>>> a
array([ 0.0945377 ,  0.52199916,  0.62490646,  0.21260126])
>>> a.dtype
dtype(‘float64‘)
>>> a.shape
(4,)#改变dtype,发现数组长度翻倍!
>>> a.dtype = ‘float32‘
>>> a
array([  3.65532693e+20,   1.43907535e+00,  -3.31994873e-25,1.75549972e+00,  -2.75686653e+14,   1.78122652e+00,-1.03207532e-19,   1.58760118e+00], dtype=float32)
>>> a.shape
(8,)#用 astype(int) 得到整数,并且不改变数组长度
b = np.array([1., 2., 3., 4.])
print(b.dtype, b.shape, b)
c = b.astype(int)
print(c.dtype, c.shape, c)(dtype('float64'), (4,), array([ 1.,  2.,  3.,  4.]))
(dtype('int64'), (4,), array([1, 2, 3, 4]))

详细参考见numpy数据类型dtype转换

x = np.array([3, 4])
np.linalg.norm(x)      #  默认二范数  
5.
np.linalg.norm(x, ord=2) #二范数  ℓ2:sqrt(x1^2+x2^2+…+xn^2)
5.
np.linalg.norm(x, ord=1)  # 1 范数    ℓ1:|x1|+|x2|+…+|xn|
7.
np.linalg.norm(x, ord=np.inf) #无穷范数 ℓ∞:max(|xi|)

范数理论的一个小推论告诉我们:ℓ1≥ℓ2≥ℓ∞


boolean arrays



a < 2
(a < 2) & (b > 10) # elementwise logical and
(a < 2) | (b > 10) # elementwise logical or
~ a                # invert boolean array

# elementwise operations and math functions



a*2
a + 5
a + b
a / b
np.exp(a)        # exponential (complex and real)
np.power(a, b)   # a to the power b
np.sin(a)
np.cos(a)
np.arctan2(a,b)
np.arcsin(a)
np.radians(a) # degrees to radians
np.degrees(a)  # radians to degrees
np.var(a)    #variance of array
np.std(a, axis=1)  #standard deviation
# numpy 中的基础运算
import numpy as np
a = np.array([10,20,30,40])
b = np.arange(4)
print(a,b)c = a + b
c = b**2  # b^2
c = b**4  # b^4c = 10*np.sin(a)
c = 10*np.cos(b)
c = 10*np.tan(a)
print(c)print(b)
print(b<3)
print(b==3)#矩阵的运算 
import numpy as np
a = np.array([[1,1],[0,1]])
b = np.arange(4).reshape((2,3))print(a,b)
#逐个乘法
c = a*b
c_dot=np.dot(a,b) #矩阵乘法
c_dot2=a.dot(b)#矩阵乘法
print(c)
print(c_dot)
print(c_dot2)import numpy as np
a =np.random.random((2,4)) # 随机生成的矩阵,从0都1中
print(np.sum(a))
print(np.min(a))
print(np.max(a))print(np.sum(a,axis=1)) #对行计算
print(np.min(a,axis=0)) #对列中求最小值
print(np.max(a,axis =1))#对行中求最大值

numpy的array合并


import numpy as npA = np.array([1,1,1])
B = np.array([2,2,2])C = np.vstack((A,B))# vertical stack 上下合并,竖直方向
print(C)
print(A.shape,C.shape)
np.vstack([np.array([1, 2, 3]), np.array([4, 5, 6])])
array([[1, 2, 3],[4, 5, 6]])np.column_stack([np.array([1, 2, 3]), np.array([4, 5, 6])])
array([[1, 4],[2, 5],[3, 6]])D = np.hstack((A,B)) # horizontal stack 左右合并,水平方向
print(D)
print(A.shape,D.shape)np.hstack([np.array([1, 2, 3]), np.array([4, 5, 6])])
array([1, 2, 3, 4, 5, 6])
# 两者近乎等效
np.row_stack([np.array([1, 2, 3]), np.array([4, 5, 6])])
array([[1, 2, 3],[4, 5, 6]])print(A.T.shape)
print(A[np.newaxis,:].shape)
print(A[:,np.newaxis].shape)#多个合并
C =np.concatenate((A,B,A,B,A,A))
print(C)#行和列合并
C = np.concatenate((A,B,A,B,A,A),axis=1)
C = np.concatenate((A,B,A,B,A,A),axis=0)
print(C)
np.concatenate((a, b), axis=0) == np.vstack((a, b))# 也对应于默认的情况,np.concatenate((a, b)) 
np.concatenate((a, b), axis=1) == np.hstack((a, b))
a = np.ndarray((3, 2, 3))
b = np.ndarray((2, 2, 3))
print(a.shape, b.shape)
(3, 2, 3) (2, 2, 3)
c = np.concatenate((a, b), axis = 0)
print(c.shape)
(5, 2, 3)
#append,矩阵的追加是采用append这个函数
a = np.array([1, 2, 3, 4, 5])
a = np.append(a, 10)
array([ 1,  2,  3,  4,  5, 10])a = np.append(a, [1, 2, 3])
array([ 1,  2,  3,  4,  5, 10,  1,  2,  3])
#列表的扩展(extend), 列表的扩展就是把两个列表合并,采用extend函数
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
c = a.extend(b)
c
a
[1, 2, 3, 4, 5, 6, 7, 8]
请注意extend这个函数的返回值是None,所以上面c的输出为空,而a的值已经变了,所以它是直接在a后面扩展的,并没有任何返回值。
#列表的追加直接用append就行
a = [1, 2,3,4]
a.append(6)
[1, 2, 3, 4, 6]

numpy数组拼接方法介绍

#思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组
>>> import numpy as np
>>> a=np.array([1,2,5])
>>> b=np.array([10,12,15])
>>> a_list=list(a)
>>> b_list=list(b)
>>> a_list.extend(b_list)
>>> a_list
[1, 2, 5, 10, 12, 15]
>>> a=np.array(a_list)
>>> a
array([ 1,  2,  5, 10, 12, 15])该方法只适用于简单的一维数组拼接
#思路:numpy提供了numpy.append(arr, values, axis=None)函数。对于参数规定,要么一个数组和一个数值;要么两个数组,不能三个及以上数组直接append拼接。append函数返回的始终是一个一维数组。
>>> a=np.arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> np.append(a,10)
array([ 0,  1,  2,  3,  4, 10])
>>> a
array([0, 1, 2, 3, 4])>>> b=np.array([11,22,33])
>>> b
array([11, 22, 33])
>>> np.append(a,b)
array([ 0,  1,  2,  3,  4, 11, 22, 33])
#numpy的数组没有动态改变大小的功能,numpy.append()函数每次都会重新分配整个数组,并把原来的数组复制到新数组中。
#思路:numpy提供了numpy.concatenate((a1,a2,...), axis=0)函数。能够一次完成多个数组的拼接。其中a1,a2,...是数组类型的参数
>>> a=np.array([1,2,3])
>>> b=np.array([11,22,33])
>>> c=np.array([44,55,66])
>>> np.concatenate((a,b,c),axis=0)  # 默认情况下,axis=0可以不写
array([ 1,  2,  3, 11, 22, 33, 44, 55, 66]) #对于一维数组拼接,axis的值不影响最后的结果>>> a=np.array([[1,2,3],[4,5,6]])
>>> b=np.array([[11,21,31],[7,8,9]])
>>> np.concatenate((a,b),axis=0)
array([[ 1,  2,  3],[ 4,  5,  6],[11, 21, 31],[ 7,  8,  9]])
>>> np.concatenate((a,b),axis=1)  #axis=1表示对应行的数组进行拼接
array([[ 1,  2,  3, 11, 21, 31],[ 4,  5,  6,  7,  8,  9]])

numpy的array分割



import numpy as np
A = np.arange(12).reshape((3,4))print(A)
print(np.split(A,2,axis=1))#列,纵向
print(np.split(A,3,axis=0))#行分割print(np.split(A,3,axis=1))# 不可分割成不相等的分割,列方向#不等的分割
print(np.array_split(A,3,axis=1))#列不等的分割print(np.vsplit(A,3)) # 纵向分割,行分割
print(np.hsplit(A,2)) #横向分割,列分割

numpy 的copy



#numpy的赋值有关联,也就是说a,b,c,d任何一个值变化,其他值也会有变化import numpy as np
a = np.arange(4)#有序数列
b = a
c = a
d = bd[1:3] =[22,33]d is a 
b is a #不关联的赋值
b = a.copy()  #deep copy
print(b)
a[3]=44
print(a,b)

inner/ outer products


np.dot(a, b)
np.einsum('ij,kj->ik', a, b)
np.sum(a, axis=1)
np.abs(a)
a[None, :] + b[:, None]
a[None, :] * b[:, None]
np.outer(a, b)
np.sum(a * a.T)

interpolation, integration


np.trapz(a, x=x, axis=1)
np.interp(x, xp, yp)

fft


np.fft.fft(a)
f = np.fft.fftfreq(len(a))
np.fft.fftshift(f)
np.fft.rfft(a)
np.fft.rfftfreq(len(a))

rounding



np.ceil(a)    # rounds to nearest upper int
np.floor(a)   # rounds to nearest lower int
np.round(a)   # runds to nearest int

random variables


np.random.normal(loc=0, scale=2, size=100)
np.random.seed(23032)
np.random.rand(200)
np.random.uniform(1, 30, 200)
np.random.randint(1, 16, 300)

本文中的 numpy.ipynb 格式可见我的CSDN下载。


#https://python.freelycode.com/contribution/detail/340
#http://www.datadependence.com/2016/05/scientific-python-numpy/
#Python科学计算之NumPy
#NumPy是Python用于处理大型矩阵的一个速度极快的数学库。
#它允许你在Python中做向量和矩阵的运算,而且很多底层的函数都是用C写的,
#你将获得在普通Python中无法达到的运行速度。
#数组基础
#NumPy的功能围绕着一些叫数组的东西。其实NP矩阵,但我们并不需要担心。
#有了这些数组,我们可以做各种有用的东西,如快速处理向量和矩阵数学。#创建一个数组4种不同的方法。最基本的方法就是传递一个序列给NumPy的array()函数;
#你可以传递给它任何的序列,不仅仅是你通常看到的列表。import numpy as np
# 1D Array
a = np.array([0, 1, 2, 3, 4])
b = np.array((0, 1, 2, 3, 4))
c = np.arange(5)
d = np.linspace(0, 2*np.pi, 5)print(a)
print(b)
print(c)
print(d)
print(a[3])
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[ 0.          1.57079633  3.14159265  4.71238898  6.28318531]
3
#上面的数组例子是如何用NumPy表示一个向量。
#接下来我们就来看看我们如何可以展示矩阵和更多的多维数组。
aa = np.array([[11, 12, 13, 14, 15],[16, 17, 18, 19, 20],[21, 22, 23, 24, 25],[26, 27, 28, 29, 30],[31, 32, 33, 34, 35]])print(aa)
print(aa[2,4])
[[11 12 13 14 15][16 17 18 19 20][21 22 23 24 25][26 27 28 29 30][31 32 33 34 35]]
25
#向量是同时具有方向和大小的量。
#矩阵类似于向量,除了它是由行和列组成外,更像一个网格。矩阵中的值可以通过给对应的行和列来引用
#多维数组切片
import numpy as np
# MD slicing
print(aa[0, 1:4])
print(aa[1:4, 0])
print(aa[::2, ::2])
print(aa[:, 1])
[12 13 14]
[16 21 26]
[[11 13 15][21 23 25][31 33 35]]
[12 17 22 27 32]
#数组属性
aa = np.array([[11, 12, 13, 14, 15],[16, 17, 18, 19, 20],[21, 22, 23, 24, 25],[26, 27, 28, 29, 30],[31, 32, 33, 34, 35]])
print(type(aa))
print(aa.dtype)
print(aa.size)
print(aa.shape)
print(aa.itemsize)  #“itemsize”属性是每项占用了多少个字节,int64有64位,每个字节8位
print(aa.ndim)      #“ndim”属性是指某个数组是几维的
print(aa.nbytes)    #“nbytes”属性是某个数组中所有数据所占用的字节
<class 'numpy.ndarray'>
int64
25
(5, 5)
8
2
200
#处理数组
#基本操作
# Basic Operators
aaa = np.arange(25)
print(aaa)
aaa = aaa.reshape((5, 5))
print(aaa)
bbb = np.array([10, 62, 1, 14, 2, 56, 79, 2, 1, 45,4, 92, 5, 55, 63, 45, 45, 3, 123, 45,34,5,67, 23,456])
print(bbb)
bbb = bbb.reshape((5,5))
print(bbb)print( aaa + bbb)
print(aaa -bbb)
print(aaa*bbb)
print(aaa/bbb)
print(aaa**2)
print(aaa<bbb)
print(aaa>bbb)
print(aaa.dot(bbb))  #dot()函数计算出两个数组的点积
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24]
[[ 0  1  2  3  4][ 5  6  7  8  9][10 11 12 13 14][15 16 17 18 19][20 21 22 23 24]]
[ 10  62   1  14   2  56  79   2   1  45   4  92   5  55  63  45  45   3123  45  34   5  67  23 456]
[[ 10  62   1  14   2][ 56  79   2   1  45][  4  92   5  55  63][ 45  45   3 123  45][ 34   5  67  23 456]]
[[ 10  63   3  17   6][ 61  85   9   9  54][ 14 103  17  68  77][ 60  61  20 141  64][ 54  26  89  46 480]]
[[ -10  -61    1  -11    2][ -51  -73    5    7  -36][   6  -81    7  -42  -49][ -30  -29   14 -105  -26][ -14   16  -45    0 -432]]
[[    0    62     2    42     8][  280   474    14     8   405][   40  1012    60   715   882][  675   720    51  2214   855][  680   105  1474   529 10944]]
[[ 0.          0.01612903  2.          0.21428571  2.        ][ 0.08928571  0.07594937  3.5         8.          0.2       ][ 2.5         0.11956522  2.4         0.23636364  0.22222222][ 0.33333333  0.35555556  5.66666667  0.14634146  0.42222222][ 0.58823529  4.2         0.32835821  1.          0.05263158]]
[[  0   1   4   9  16][ 25  36  49  64  81][100 121 144 169 196][225 256 289 324 361][400 441 484 529 576]]
[[ True  True False  True False][ True  True False False  True][False  True False  True  True][ True  True False  True  True][ True False  True False  True]]
[[False False  True False  True][False False  True  True False][ True False  True False False][False False  True False False][False  True False False False]]
[[  335   418   289   572  2130][ 1080  1833   679  1652  5185][ 1825  3248  1069  2732  8240][ 2570  4663  1459  3812 11295][ 3315  6078  1849  4892 14350]]
#数组中特定的操作
# dot, sum, min, max, cumsum
a4 = np.arange(10)
print(a4.sum())
print(a4.min())
print(a4.max())
print(a4.cumsum()) #cumsum()逐项相加之和
45
0
9
[ 0  1  3  6 10 15 21 28 36 45]
print(a4)
[0 1 2 3 4 5 6 7 8 9]
#高级索引
#奇特的索引
# Fancy indexing
a5 = np.arange(0, 100, 10)
indices = [1, 5, -1]
b5 = a5[indices]
print(a5)
print(b5)
[ 0 10 20 30 40 50 60 70 80 90]
[10 50 90]
#布尔屏蔽
#布尔屏蔽是一个奇妙的特性,它允许我们按照我们指定的条件来检索元素。
# Boolean masking
import matplotlib.pyplot as plt
a6 = np.linspace(0, 2*np.pi, 50)
b6 = np.sin(a6)
plt.plot(a6,b6)
mask = b6 >=0
plt.plot(a6[mask], b6[mask], 'bo')
mask = (b6 >=0) & (a6 <= np.pi/2)
plt.plot(a6[mask], b6[mask], 'go')
plt.show()

这里写图片描述

#不完整的索引
#Incomplete Indexing
a7 = np.arange(0,100,10)
b7 = a7[:5]
c7 = a7[a7 >=50]
print(b7)
print(c7)
[ 0 10 20 30 40]
[50 60 70 80 90]
#Where,当需要以特定条件来检索数组元素的时候。
#只需要传递给它一个条件,它将返回符合条件的元素列表。
# where
a8 = np.arange(0,100,10)
b8 = np.where(a8<50)
c8 = np.where(a8>=50)[0]
print(b8)
print(c8)
(array([0, 1, 2, 3, 4]),)
[5 6 7 8 9]

numpy 辨异函数

np.repeat 与 np.tile
二者执行的是均是复制操作;
np.repeat:复制的是多维数组的每一个元素;
np.tile:复制的是多维数组本身;
#np.repeat
>> x = np.arange(1, 5).reshape(2, 2)
>> np.repeat(x, 2)
array([1, 1, 2, 2, 3, 3, 4, 4])# 对数组中的每一个元素进行复制# 除了待重复的数组之外,只有一个额外的参数时,高维数组也会 flatten 至一维
#在行的方向上(axis=1),在列的方向上(axis=0)
>> np.repeat(x, 3, axis=1)
array([[1, 1, 1, 2, 2, 2],[3, 3, 3, 4, 4, 4]])
>> np.repeat(x, 3, axis=0)
array([[1, 2],[1, 2],[1, 2],[3, 4],[3, 4],[3, 4]])
#numpy 下的 np.tile有些类似于 matlab 中的 repmat函数。不需要 axis 关键字参数,仅通过第二个参数便可指定在各个轴上的复制倍数。
>> a = np.arange(3)
>> np.tile(a, 2)
array([0, 1, 2, 0, 1, 2])
>> np.tile(a, (2, 2))
array([[0, 1, 2, 0, 1, 2],[0, 1, 2, 0, 1, 2]])>> b = np.arange(1, 5).reshape(2, 2)
>> np.tile(b, 2)
array([[1, 2, 1, 2],[3, 4, 3, 4]])# 等价于
>> np.tile(b, (1, 2))

References


Python科学计算之NumPy

An Introduction to Scientific Python – NumPy

机器学习入门必备的13张小抄

numpy教程 pandas教程 Python数据科学计算简介

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 中的Pandas库

待总结 用scikit-learn和pandas学习线性回归 用scikit-learn和pandas学习Ridge回归 基于python的数据分析库Pandas pandas——Python 数据分析库&#xff0c;包括数据框架&#xff08;dataframes&#xff09;等结构 http://pandas.pydata.org/ 10 Minutes to Pandas&#…

weka和matlab完成完整分类实验

本文 本文简单介绍数据集介绍、weka的使用、weka与LIBSVM、matlab与LIBSVM以及分类的若干细节问题。 1. 数据集介绍 打开网址UCI数据集&#xff0c;如下图。 从右下角可以看到Iris这个数据集&#xff0c;这是使用最多的数据集&#xff0c;目前下载量超过了82万。 打开之后跳…

Python 中的绘图matplotlib mayavi库

python matplotlib 图像可视化 python-data-visualization-course Interactive Web Plotting for Python Interactive Web Plotting for Python-github 待整理的 Matplotlib Introduction to Matplotlib and basic line matplotlib——一个 2D 绘图库&#xff0c;可产生…

ubuntu 16.04 配置Python2.7 和 Python3.5 同时调用OpenCV

安装OpenCV OpenCV 官网&#xff0c;下载见 SourceForge and GitHub。 若使用官网版本安装不成功&#xff0c;则可试试Github版本。 或者 git clone https://github.com/Itseez/opencv.git 安装依赖库 sudo apt-get -y install libopencv-dev sudo apt-get -y install bui…

生成特定分布随机数的方法:Python seed() 函数numpy scikit-learn随机数据生成

描述 seed() 方法改变随机数生成器的种子&#xff0c;可以在调用其他随机模块函数之前调用此函数。。 语法 以下是 seed() 方法的语法: import random random.seed ( [x] ) 注意&#xff1a;seed(()是不能直接访问的&#xff0c;需要导入 random 模块&#xff0c;然后通过 ra…

scipy.ndimage.zoom上采样与下采样

插值 Bilinear interpolation would be order1, nearest is order0, and cubic is the default (order3). 举例说明 import numpy as np import scipy.ndimagex np.arange(64).reshape(8,8)print Original array: print xprint Resampled by a factor of 2 with nearest i…

UFLDL教程: Exercise: Sparse Autoencoder

自编码可以跟PCA 一样&#xff0c;给特征属性降维 一些matlab函数 bsxfun:Cbsxfun(fun,A,B)表达的是两个数组A和B间元素的二值操作&#xff0c;fun是函数句柄或者m文件&#xff0c;或者是内嵌的函数。在实际使用过程中fun有很多选择比如说加&#xff0c;减等&#xff0c;前面需…

UFLDL教程:Exercise:PCA in 2D PCA and Whitening

相关文章 PCA的原理及MATLAB实现 UFLDL教程&#xff1a;Exercise:PCA in 2D & PCA and Whitening python-A comparison of various Robust PCA implementations Deep Learning and Unsupervised Feature Learning Tutorial Solutions 统计学的基本概念 统计学里最基本…

UFLDL教程:Exercise:Softmax Regression

Softmax分类函数的Python实现 Deep Learning and Unsupervised Feature Learning Tutorial Solutions 逻辑回归假设函数 在线性回归问题中&#xff0c;假设函数具有如下形式&#xff1a; 在 logistic 回归中&#xff0c;我们的训练集由m 个已标记的样本构成&#xff1a;&#…

UFLDL教程: Exercise:Self-Taught Learning

自我学习 Deep Learning and Unsupervised Feature Learning Tutorial Solutions 1.先训练稀疏自编码器提取特征&#xff0c;再把特征和label给softmax分类器进行训练&#xff0c;最后用test数据集进行测试。 2.由于实际应用中找到大量有标注的样本是非常困难的&#xff0c;所…

UFLDL教程: Exercise: Implement deep networks for digit classification

Deep networks Deep Learning and Unsupervised Feature Learning Tutorial Solutions 深度网络的优势 比单层神经网络能学习到更复杂的表达。不同层的网络学习到的特征是由最底层到最高层慢慢上升的。比如在图像的学习中&#xff0c;第一个隐含层网络可能学习的是边缘特征&am…

UFLDL教程: Exercise:Learning color features with Sparse Autoencoders

Linear Decoders Deep Learning and Unsupervised Feature Learning Tutorial Solutions 以三层的稀疏编码神经网络而言&#xff0c;在sparse autoencoder中的输出层满足下面的公式 从公式中可以看出&#xff0c;a3的输出值是f函数的输出&#xff0c;而在普通的sparse autoenc…

UFLDL教程:Exercise:Convolution and Pooling

Deep Learning and Unsupervised Feature Learning Tutorial Solutions CNN的基本结构包括两层 其一为特征提取层&#xff0c;每个神经元的输入与前一层的局部接受域相连&#xff0c;并提取该局部的特征。一旦该局部特征被提取后&#xff0c;它与其它特征间的位置关系也随之确…

莫凡机器学习课程笔记

怎样区分好用的特征 避免无意义的信息避免重复性的信息避免复杂的信息 激活函数的选择 浅层神经网络&#xff0c;可以随便尝试各种激活函数 深层神经网络&#xff0c;不可随机选择各种激活函数&#xff0c;这涉及到梯度爆炸和梯度消失。&#xff08;给出梯度爆炸和梯度消失的…

UFLDL教程:数据预处理

数据预处理是深度学习中非常重要的一步&#xff01;如果说原始数据的获得&#xff0c;是深度学习中最重要的一步&#xff0c;那么获得原始数据之后对它的预处理更是重要的一部分。 一般来说&#xff0c;算法的好坏一定程度上和数据是否归一化&#xff0c;是否白化有关。 数据归…

深度学习笔记(待续)

背景知识 好的特征应具有不变性&#xff08;大小、尺度和旋转等&#xff09;和可区分性&#xff09;&#xff1a;例如Sift的出现&#xff0c;是局部图像特征描述子研究领域一项里程碑式的工作。由于SIFT对尺度、旋转以及一定视角和光照变化等图像变化都具有不变性&#xff0c;并…

人工智能泰斗迈克尔·乔丹分享机器学习要义:创新视角,直面挑战

2017年6月21日至22日&#xff0c;腾讯云未来峰会在深圳举行。人工智能领域的世界级泰斗迈克尔欧文乔丹&#xff08;Michael I.Jordan&#xff09;进行了主题为“机器学习&#xff1a;创新视角&#xff0c;直面挑战”的演讲&#xff0c;与大家分享他对人工智能的未来与挑战的见解…

Tensorflow官方文档---起步 MNIST示例

Tensorflow •使用图 (graph) 来表示计算任务. • 在被称之为 会话 (Session) 的上下文 (context) 中执行图. • 使用 tensor 表示数据. • 通过 变量 (Variable) 维护状态. • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据 综述 Ten…

Git 版本管理

相关文章 版本管理 github访问太慢解决方案 Material for git workshop GitHub秘籍 安装-Git版本管理 Git官网安装说明 Linux 系统安装 # 如果你的 Linux 是 Ubuntu: $ sudo apt-get install git-all# 如果你的 Linux 是 Fedora: $ sudo yum install git-all 如果是其他…

tensorflow:Multiple GPUs

深度学习theano/tensorflow多显卡多人使用问题集 tensorflow中使用指定的GPU及GPU显存 Using GPUs petewarden/tensorflow_makefile tf_gpu_manager/manager.py 多GPU运行Deep Learning 和 并行Deep Learning&#xff08;待续&#xff09; Multiple GPUs 1. 终端执行程序…