numpy和scipy中的各种常规操作

numpy

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import leastsq
from numpy import poly1d

if __name__ == '__main__':

    # a = np.array([(1, 2, 3), (4, 5, 6)])
    # a = np.zeros((4,6))
    # a = np.ones((3,5,7), dtype=np.int32)
    # a = np.arange(1, 5, 0.3)        # 1 - 5 之间,间隔0.3
    # a = np.linspace(1, 5, 10)       # 1 - 5 之间,分成10个数
    # a = np.arange(12).reshape(3, 4)
    # b = a <6

    # a = np.arange(16).reshape(4, 4)
    # b = np.arange(16).reshape(4, 4)
    # print(a, '\n', b)
    # print(a*b)      # 使用 * 为矩阵元素相乘
    # print(np.dot(a, b)) # 使用 dot 才是矩阵的乘法

    # a = np.arange(16).reshape(4, 4)
    # print(a.sum(), '\n', a.max())   # 没有参数时自动把矩阵转成一维
    # print(a.sum(axis = 0), '\n', a.max(axis = 1))   # 有参数时按照列或行计算
    # print(np.sqrt(a), '\n', np.add(a, a))   # 各种函数,开方、求和等,都是对元素操作

    # a = np.concatenate(([3], [0] * 5, np.arange(-1, 1.002, 2 / 9.0)))   # 构造特殊矩阵的简单方法
    # a = np.r_[3, [0] * 5, -1:1:10j]
    # a = np.mgrid[0:5, 0:5]
    #
    # a = poly1d([3, 4, 5])   # 直接生成一个多项式,并对多项式进行各种骚操作
    # a = poly1d([3, 4, 5], True)
    # print(a)
    # print(a([1, 3]))
    # print(a.deriv())

    # def addsubtract(a, b):  # 可以直接对若干个矩阵中的元素进行自定义的各种操作
    #     if a > b:
    #         return a - b
    #     else:
    #         return a + b
    # vec_addsubtract = np.vectorize(addsubtract)
    # print(vec_addsubtract([1,2,3,4], [6,4,2,1]))

scipy

    # 各种特殊函数的绘制
    from scipy import special

    def drumhead_height(n, k, distance, angle, t):
        kth_zero = special.jn_zeros(n, k)[-1]
        return np.cos(t) * np.cos(n * angle) * special.jn(n, distance * kth_zero)

    theta = np.r_[0:2 * np.pi:50j]
    radius = np.r_[0:1:50j]
    x = np.array([r * np.cos(theta) for r in radius])
    y = np.array([r * np.sin(theta) for r in radius])
    z = np.array([drumhead_height(1, 1, r, theta, 0.5) for r in radius])

    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm

    fig = plt.figure()
    ax = Axes3D(fig)
    ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.jet)
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    plt.show()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值