2.1
# In[2.1]
import numpy as np
A=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(A)
A=np.arange(1,13).reshape(3,4)
print(A)
print(A[2,:])
print(A[2:])
2.2
注意范德蒙行列式生成规则
numpy.vander(x=一维输入数组,N=生成列数 如不填默认返回正方形数组,increasing=False/True)
# In[2.2]
import numpy as np
v=np.array([1,2,3,4])
v1=np.vander(v,4,increasing=False)
v2=np.vander(v,4,increasing=True)
print(v1)
print(v2)
2.3
# In[2.3]
import numpy as np
v=np.array([[1],[-1],[1]])
print(v)
P=v*np.transpose(v)/(np.transpose(v)*v)
# 矩阵元素乘法:1.*
# 2.np.multiply(A,B)
# 矩阵乘法:1.np.matmul(A,B)
# 2.np.dot(A,B) 局限性只适用于二维矩阵或者向量
# 元素乘法和矩阵乘法的区别在于 元素乘法需要矩阵shape相同 矩阵乘法不要求
# A = np.array([[1, 2, 3],
# [4, 5, 6]], dtype='int16')
# B = np.array([[7, 8],
# [9, 10],
# [11, 12]], dtype='int16')
print(P)
Q=np.eye(3)-P
# 单位矩阵
print(Q)
# In[2.4]
2.4
part1:生成包含1000个0~100以内的随机数
# In[2.4]
import numpy as np
# 生成一千个0~100内的随机数
li=[]
for i in range(0,1000):
a=np.random.randint(0,100,dtype='l')
li.append(a)
# print(li)
part2:统计数字出现次数,有几种方式
1.pandas模块
import pandas as pd
c=pd.DataFrame(li)
print(c.value_counts())
2.collections.Counter方法
import collections
c=collections.Counter(li)
print(c)
3.设计循环遍历数组
cli=dict()
for n in li:
if n in cli:
cli[n]+=1
else:
cli[n]=1
print(cli)
2.5
# In[2.5]
import numpy as np
li=np.random.randint(100, size=20)
li[0:10].sort()
li[10:20] = abs(np.sort(-li[10:20]))
print(li)
2.6
import numpy as np
import pandas as pd
A=np.array([[9,80,205,40],
[90,-60,96,1],
[210,-3,101,89]])
for i in range (A.shape[0]):
if i==max(A[i]):
for j in range(A.shape[1]):
if j==min(A[:,j]):
print(A[i][j])
2.8
# In[2.8]
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-4*np.pi,4*np.pi,1000)
for k in range(1,7):
y=k*x**2*np.sin(x)+2*k+np.cos(x**3)
plt.plot(x,y)
2.9
# In[2.9]
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-4*np.pi,4*np.pi,1000)
for k in range(1,7):
plt.subplot(230+k)
y=k*x**2*np.sin(x)+2*k+np.cos(x**3)
plt.plot(x,y)
2.10
2.10.1
# In[2.10.1]
import numpy as np
import matplotlib.pyplot as plt
f=plt.figure()
ax=plt.axes(projection='3d')
x=np.linspace(-50,50,1000)
y=np.linspace(-50,50,1000)
x,y=np.meshgrid(x,y)
z=((x**2/8+y**2/10-1)*6)**0.5
ax.plot_surface(x,y,z,cmap='coolwarm')
plt.show()
2.10.2
# In[2.10.2]
import numpy as np
import matplotlib.pyplot as plt
f=plt.figure()
ax=plt.axes(projection='3d')
x=np.linspace(-50,50,1000)
y=np.linspace(-50,50,1000)
x,y=np.meshgrid(x,y)
z=((x**2/8-y**2/10-1)*8)**0.5
ax.plot_surface(x,y,z,cmap='coolwarm')
plt.show()
2.10.3
# In[2.10.3]
import numpy as np
import matplotlib.pyplot as plt
f=plt.figure()
ax=plt.axes(projection='3d')
x=np.linspace(-50,50,1000)
y=np.linspace(-50,50,1000)
x,y=np.meshgrid(x,y)
z=x**2/8+y**2/6
ax.plot_surface(x,y,z,cmap='coolwarm')
plt.show()
2.11
# In[2.11]
import numpy as np
import matplotlib.pyplot as plt
f=plt.figure()
ax=plt.axes(projection='3d')
s=np.linspace(-1,1,1000)
t=np.linspace(0,2*np.pi,1000)
s,t=np.meshgrid(s,t)
x=(2+s/2*np.cos(t/2))*np.cos(t)
y=(2+s/2*np.cos(t/2))*np.sin(t)
z=s/2*np.sin(t/2)
ax.plot_surface(x,y,z,cmap='coolwarm')
plt.show()
2.12
2.12.1
# In[2.12]
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-2,2,50)
y=np.linspace(-2,3,)
x,y=np.meshgrid(x,y)
z=x*np.exp(-x**2-y**2)
contr=plt.contour(x,y,z)
plt.clabel(contr)
2.12.2
# In[2.12.2]
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1.5,2,50)
y=np.linspace(-1.5,2,50)
x,y=np.meshgrid(x,y)
z=(1-x**2-y**2)*np.exp(-y**3/3)
contr=plt.contour(x,y,z)
plt.clabel(contr)