numpy和matlab思维差异

目录

  • numpy核心对象是多维数组
  • 方括号的深度
  • numpy数组怎么index
  • 举例:高频函数\huge t^3e^{-t}{\color{Cyan} }画图

numpy核心对象是多维数组

numpy 可以说并没有矩阵的概念,它的核心思维方式是多维数组。

>>> np.zeros((256,256))  #产生一个256×256的全0矩阵需要两个括号,行列均需赋值。

>>> np.zeros([256,256])

方括号的个数决定深度

tri1 = np.float32([[360,200], [60,250], [450,400]])
triangle = np.float32([[[360,200], [60,250], [450,400]]])

print(np.shape(tri1))
print(np.shape(triangle))

(3, 2)
(1, 3, 2)

除非强行参数升维

b = np.array([1, 2, 3], ndmin=2)
print(np.shape(b))

(1, 3)

c = np.array([[1, 2], [3, 4]],dtype=complex)
print(np.shape(c))
print(c)

(2, 2)
[[1.+0.j 2.+0.j]
 [3.+0.j 4.+0.j]]

看看numpy数组怎么index

triangle = np.float32([[[360,200], [60,250], [450,400]]])
print(triangle[0][2][1])
print(triangle[0,2,1])
print(triangle[0][2,1])
print(triangle[0,1:])
print(triangle[0,1,:])

400.0
400.0
400.0

[[ 60. 250.]
 [450. 400.]]

[ 60. 250.]

numpy有个子类是用来矩阵运算,但是完全没必要用到,多维数组可以完全替代。

A=np.mat('1 2; 3 4')
print(A)
type(A)

[[1 2]
 [3 4]]
numpy.matrixlib.defmatrix.matrix

下面这个例子很有代表性

a = np.array([1,2,3])
print(a)    
print(a.T) 

输出:

[1 2 3]
[1 2 3]

即一维数组转置仍然是一维数组,而不是matlab里的行向量转置为列向量。


matlab的核心思想是矩阵

zeros(256)  %即生成256×256全0矩阵。

举例:高频函数\huge t^3e^{-t}{\color{Cyan} }画图

函数画图numpy和matlab基本一样

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 10.0, 0.01)
s = t**3*np.exp(-t)
s1 = t**3
s2 = np.exp(-t)
    
plt.figure()
plt.subplot(3,1,1)
ax=plt.subplot(3,1,1)
plt.plot(t,s)
ax.set(xlabel='frequency (THz)', ylabel=' The amount of energy \n per unit surface area \n per unit time per unit solid angle \n per unit frequency ',
       title='Temperature T0')
ax.grid()

plt.subplot(3,1,2)
plt.plot(t,s1)
ax=plt.subplot(3,1,2)
ax.set(xlabel='frequency (THz)')  
ax.grid()

plt.subplot(3,1,3)
plt.plot(t,s2)
ax=plt.subplot(3,1,3)
ax.set(xlabel='frequency (THz)')       
ax.grid()

还有一个值得一提的命令,linspace()

x=numpy.linspace(2.0, 3.0, num=5)

Return evenly spaced numbers over a specified interval.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞行codes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值