numpy 学习

作者: l_b_n | 来源:发表于2017-05-09 17:18 被阅读0次

numpy.1

import numpy as np
a = np.arange(4)
print(a)
#生成的是一个从0开始的4个值的数列
#[0 1 2 3]
a = np.arange(4).reshape((2,2))
print(a)
print(a.shape)
#判断矩阵的样式(2, 2)代表2行2列
#生成一个2行2列的矩阵
#[[0 1]
# [2 3]]
a = np.arange(4).reshape((2,2))
print(a)
print(np.sum(a,axis = 0))#axis = 0 代表按列相加 axis=1代表按行 
'''[[0 1]
 [2 3]]'''
#[2 4] 返回一个array
print(np.max(a))#找到其中最大的值
print(np.min(a))#找到最小的值
print(np.max(a,axis = 0))#按列找出每一列的最大值
print(np.min(a,axis = 0))#同上
b = np.arange(12).reshape((3,4))
print(b)
print(np.argmax(b,axis = 1))#[3 3 3] 按照行将每一行的最大的值的位置返回一个数列
print(b.mean())#算出所有值的 平均值
print(np.cumsum(b))
#[ 0  1  3  6 10 15 21 28 36 45 55 66]
#将每一个值递加 并返回
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
d = np.random.random((2,3)) * 10 - 3
#可以看到随机生成的一个2行3列的矩阵并且对矩阵的运算是对每一个元素的计算
print(d)
print(d.shape)#(2, 3)
print(np.transpose(d)#对矩阵的转置 transpose
print(d.T)#对矩阵的转置
'''
[[ 3.79442884  2.65870034  2.96206461]
 [-1.91460778  1.11432605  2.06610598]]
'''
'''
[[-0.27988317 -2.06762975 -1.91392339]
 [-1.44516069 -1.55149608  6.53402984]]
(2, 3)
[[-0.27988317 -1.44516069]
 [-2.06762975 -1.55149608]
 [-1.91392339  6.53402984]]
'''

d = np.arange(12).reshape((3,4))
a = np.arange(4).reshape((4,1))
print(d)
print(a)
print(d.dot(a))#矩阵的乘法d 在前
print(np.mean(d,axis = 0))
print(np.mean(d,axis = 1))
#[ 4.  5.  6.  7.]按照列来求平均值返回4列的平均值
#[ 1.5  5.5  9.5]按照行来求返回3行
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

[[0]
 [1]
 [2]
 [3]]

[[14]
 [38]
 [62]]
'''


A = np.arange(4,14).reshape(2,5)
print(A)
print(A[1])#按行来取出数据
print(A[1,1:3])#取出矩阵中的更加具体的一些值
print(A[0:,1:3])#从矩阵中取出矩阵
'''
[[ 5  6]
  [10 11]]
'''
print(A.flatten())
'''
[[ 4  5  6  7  8]
   [ 9 10 11 12 13]]'''
[ 9 10 11 12 13]
[10 11]
[ 4  5  6  7  8  9 10 11 12 13]

numpy.2

增加维度

正常来说a如果单纯为一个list的话[ ]*3 代表‘复制’如下面的d所示
所以利用np.array 变成数列可以进行运算
但是还是不够,需要变成向量(矩阵)
list => array => matrix(vector)

a = np.array([1,1,1])
b = a*3
c = [1,1,1]
d = c * 3
print(b)#[3 3 3]
print(d) #  [1, 1, 1, 1, 1, 1, 1, 1, 1]

a 变成 array 之后 利用[np.newaxis,:] 变成一个一行一列的向量
[np.newaxis,:] 表示的意思是:在行上增加一个纬度,列上选择所有列
[np.newaxis,0:1]:则是意思选出一列从0到1不包括1 在行增加一个维度
[0:2,np.newaxis] :按行取取出的一行中的每一个元素 ,增加一个维度

a = np.array([1,2,3])[np.newaxis,0:1]
print(a) #   [[1]]
b = np.array([1,2,3])[0:2,np.newaxis]
'''
[[1]
 [2]]
'''
a = np.array([1,2,3])[np.newaxis,:]#array => vector
#[[1,2,3]] 
print(a.T)
c = np.array([4,5,6])[np.newaxis,:]
d = np.array([11,11,11])
print(d)
print(a)
'''
[[1]
 [2]
 [3]]
[11 11 11]
[[1 2 3]]
'''

矩阵的组合

三行一列的矩阵a 和 c
分别按照行 axis = 1 (行) 和 axis = 0 (列) 组合
按行组合就是直接加到右侧(要求相同的行数)
按列就是直接加到下侧(要求相同的列数)

a = np.array([1,2,3]).reshape((3,1))
print(a)
c = np.array([4,5,6]).reshape((3,1))
print(c)
print(np.concatenate((a,c),axis = 1))
print(np.concatenate((a,c),axis = 0)

'''
#(3,2)shape
[[1 4]
 [2 5]
 [3 6]]
#(6,1)shape
[[1] [2] [3] [4] [5] [6]]
'''

hstack 代表的是 concatenate 的axis = 1(行合并)
vstack 代表的是 concatenate 的axis = 0(列合并)

d = np.hstack((a,c))
print(d)
e = np.vstack((a,c))
print(e)

还可以实现多个 矩阵的组合

a = np.array([1,2,3]).reshape((3,1))
c = np.array([4,5,6]).reshape((3,1))
d = np.hstack((a,c))
e = np.hstack((a,c,d))#(a,c,d) this tuple can have many matrix!
print(e)

矩阵的分割

np.split(a,3,axis = 0)三个参数
a: 要被分割的矩阵
3:分割的份数必须是在被分割维度上可以整除
axis = 1(被保留的是行数【分割后行数不变】,就是说按列分割)
axis = 0(被保留的是列数【分割后列数不变】,就是说按行分割)

a = np.arange(12).reshape((3,4))
print(a)
print(np.split(a,3,axis = 0))

'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
#[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
#注意返回值是一个一个的array里面包含着matrix

另外一种分割方式
hsplit : 和axis = 1的情况一样 都是保留行数的分割方式
同理 还有vsplit

a = np.arange(12).reshape((3,4))
print(a)
print(np.split(a,2,axis = 1))
print(np.hsplit(a,2)

copy

a = np.arange(4)
b = a
c = a.copy()
if b is a:
    print('b is a')
if c is a:
    print('c is a')

相关文章

  • numpy 学习(待更新)

    numpy 学习 标签(空格分隔): 机器学习 Numpy 入门 一、安装 pip install numpyor...

  • Numpy 学习图谱

    在学习 Numpy 的时候,整理了一份 Numpy 学习图谱,希望同样可以帮助到想要入门 Numpy 的朋友。 N...

  • Python-03 ~ 机器学习库 之 NumPy

    NumPy是机器学习中最常用的计算科学库,今天就来看看吧 NumPy简单介绍 NumPy的简单介绍:NumPy是机...

  • Numpy学习笔记

    Numpy学习笔记 Numpy基础 Numpy的数组类也叫ndarray,也就是大家所熟悉的array;ndarr...

  • 机器学习之numpy和matplotlib学习(十一)

    今天继续来学习numpy。学习有关复数矩阵在numpy中的创建和使用。 运行结果: 更新完毕##

  • Python机器学习基础教程学习笔记(1)——用到的库

    Python机器学习基础教程学习笔记(1)——用到的库 1 Numpy numpy数组 2 Scipy scipy...

  • Python学习笔记3-Numpy

    Numpy 学习莫烦python,非常感谢~记录自己在学习python过程中的点滴。 Numpy 安装 Anaco...

  • Numpy 学习

    创建指定数值的数组 高级通用函数的特性

  • numpy学习

    按序数获取数据。不同的书写方式,可能维度会降低,可能跟原先的一样。 在数组中间某行获取数据有两种方式:整数和切片混...

  • Numpy学习

    本文首发于我的博客:gongyanli.com参考视频:莫烦的numpy视频/ 前言:和pandas一样,nump...

网友评论

    本文标题:numpy 学习

    本文链接:https://www.haomeiwen.com/subject/iwthzttx.html