Numpy

作者: 我问你瓜保熟吗 | 来源:发表于2018-08-31 17:08 被阅读21次

介绍:Numeric Python,它是一个由多维数组对象和用于处理数组的例程集合组成的库。

import numpy as np

# 定义矩阵
a = np.array([1,2,3],dtype=np.int)          # 一维矩阵,设置为整数方式存在,也可以:dtype=np.float
b = np.zeros((3,4),dtype=np.float)
c = np.ones((3,4),dtype=np.float)
d = np.arange(12).reshape((3,4))
e = np.linspace(1,10,8).reshape(2,4)

print(a,'\n',b,'\n',c,'\n',d,'\n',e)

# 矩阵的属性
array = np.array([[1,2,3],[4,5,6]])         # 二维矩阵/数组
print(array)
print('number of dimmension:',array.ndim)   # array.ndim 几维矩阵
print('shape',array.shape)                  # array.shape 矩阵几行几列
print('size',array.size)                    # array.size 矩阵几个元素

# 基础运算 1

# 逐个相加减乘除
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
c1 = a - b
c2 = a + b
c3 = a*b
print(c1, c2, c3)

# 比较运算,返回布尔值列表
print(b<3)
print(b==3)

# 矩阵相乘
aa = np.array([1,1]
              [0,1])
bb = np.arange(4).reshape(2,2)

# 逐个相乘
cc1 = aa*bb
# 矩阵相乘
cc3 = np.dot(aa, bb)
cc4 =aa.dot(b)


# 矩阵求和,最值
d = np.random.rand((2, 4))  # 两行四列的矩阵,值为随机生成的0-1之间
print(d)
print(np.sum(a, axis=1))    # axis=0代表行,=1代表列
print(np.min(a, axis=0))
print(np.max(a, axis=1))
print(np.average(d))

# 基础运算 2

# 找出索引
e = np.arange(2, 14).reshape((3, 4))
print(e)
print(np.argmin(e))
print(np.argmax(e))

# 索引找值
A = np.arange(3,15).reshape(3,4)
print(A)
print(A[2], [1])
print(A[2, 1])
print(A[2, :])
print(A[2, 1:3])

# 迭代每一行
for row in A:
    print(row)

# 迭代每一列
for column in A.T:
    print(column)

# 迭代所有
print(A.flatten())

# flat:迭代索引返回一个迭代器
for item in A.flat:
    print(item)

# 合并

A = np.array([1, 1, 1])  # 三行
B = np.array([2, 2, 2])  # 三行

C = np.vstack((A, B))    # 两行三列  vertical stak  上下合并
print(C)
print(A.shape, C.shape)

D = np.hstack((A, B))    #
print(D)
print(D.shape)


# 行变列

A1 = np.array([1, 1, 1])[:, np.newaxis]
B1 = np.array([2, 2, 2])[:, np.newaxis]
C1 = np.hstack((A1, B1))
print(A1.shape, C1.shape)

# 分割

A = np.arange(12).reshape((3, 4))
print(A)

print(np.split(A, 3, axis=0)) # 分成几块,横向还是竖向分
print(np.vsplit(A, 3))        # 横向分割三块,同上
print(np.split(A, 4, axis=1))
print(np.hsplit(A, 2))        # 竖向分割两块,同上

print(np.array_split(A, 3, axis=1)) # 不平均分割,一个两列,两个一列

# 浅复制 & 深复制

a = np.arange(4)
b = a
c = a

print(a)
c[1] = 88     # 修改c之后,a也会跟着改变,这就是浅复制,理解为链接复制
print(a)

d = a.copy()  #加.copy()是深复制,更改d不会同时改变a
d[3] = 33
print(a, d)

相关文章

  • 科学计算库numpy的执行示例

    numpy1 numpy2 numpy3 numpy4

  • numpy中的常量

    Constants 正无穷 numpy.inf numpy.Inf numpy.Infinity numpy.in...

  • NumPy学习资料

    Numpy 中文资料 NumPy 中文文档 NumPy 中文用户指南 NumPy 中文参考手册

  • Numpy基础

    安装Numpy Numpy Numpy属性 ndim:纬度 shape:行数和列数 size:元素个数 Numpy...

  • Numpy和Pandas基本操作速查

    """ numpy 基本操作 """'''安装 Numpy 的方法:pip install numpy''''''...

  • numpy 基础

    numpy 基础 导入numpy 版本 np常用方法 numpy.array 的基本属性 numpy.array ...

  • Numpy入门

    1、熟悉 numpy 的基础属性 2、numpy 创建 array 3、numpy的基础运算 4、numpy索引 ...

  • 学习:biopython的安装

    安装Numpy 因为使用biopython需要numpy的支持,所以需要先安装numpy。安装numpy过程如下:...

  • Numpy

    Numpy中文文档 # 基本语法 ``` import numpy myText = numpy.genfromt...

  • numpy运算

    numpy的与运算 numpy 中 argsort() numpy 中的布尔索引

网友评论

      本文标题:Numpy

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