0915练习

2022.9.15目录

  • 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0。
  • 创建一个每一行都是从0到4的5*5矩阵。
  • 创建一个范围在(0,1)之间的长度为12的等差数列,创建[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]等比数列。
  • 创建一个长度为10的随机数组并将最大值替换为-100。
  • 如何根据第3列大小顺序来对一个5*5矩阵排序?
  • 使用numpy中的arange函数来创建三个包含1~10的整数的numpy数组,使三个数组的形状分别为 10∗1,2∗5,5∗2。
  • 创建一个 10x10 的随机数组并找到它的最大值和最小值。
  • 创建一个2x3的矩阵与一个3x4的矩阵,并求其乘积。

import numpy as np
a=np.arange(20).reshape(4,5)  #数组n不变,返回维度为(x,y)的数组
np.savetxt('test.csv',a,fmt='%d',delimiter=',')
np.loadtxt('test.csv',delimiter=',')
array([[ 0.,  1.,  2.,  3.,  4.],
       [ 5.,  6.,  7.,  8.,  9.],
       [10., 11., 12., 13., 14.],
       [15., 16., 17., 18., 19.]])

创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0。

Z = np.ones((10,10))
Z[1:-1,1:-1] = 0
print(Z)
[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
 [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]

创建一个每一行都是从0到4的5*5矩阵。

a=np.zeros((5,5))
for i in range(5):
    for j in range(5):
        a[i,j]=j
print(a)
[[0. 1. 2. 3. 4.]
 [0. 1. 2. 3. 4.]
 [0. 1. 2. 3. 4.]
 [0. 1. 2. 3. 4.]
 [0. 1. 2. 3. 4.]]

创建一个范围在(0,1)之间的长度为12的等差数列,创建[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]等比数列。

import numpy as np
arr=np.linspace(0,1,12)
display(arr)
arr2=np.logspace(0,10,base=2,num=11,dtype='int')
print(arr2)
array([0.        , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
       0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
       0.90909091, 1.        ])


[   1    2    4    8   16   32   64  128  256  512 1024]

创建一个长度为10的随机数组并将最大值替换为-100。

arr9=np.random.randint(1,10,size=10)
cond= arr9==arr9.max()
arr9[cond]=-100
print(arr9)
[   5    4    7 -100    6    5 -100    7    6    5]

如何根据第3列大小顺序来对一个5*5矩阵排序?

import numpy as np
arr=np.random.rand(5,5)
index=np.argsort(arr[:,2]) # np.argsort()方法
print(index)
arr[index]
[4 3 1 0 2]





array([[0.54723143, 0.35730132, 0.33367611, 0.26447109, 0.72313824],
       [0.18892659, 0.37189964, 0.33428081, 0.73356775, 0.1459447 ],
       [0.95830132, 0.14138699, 0.43426274, 0.20163973, 0.07713201],
       [0.11808383, 0.05367191, 0.60308876, 0.39207281, 0.14945413],
       [0.79998189, 0.32714614, 0.61650152, 0.3904105 , 0.07404079]])

使用numpy中的arange函数来创建三个包含1~10的整数的numpy数组,使三个数组的形状分别为 10∗1,2∗5,5∗2。

numpy.arange(n).reshape(a, b) 依次生成n个自然数,并且以a行b列的数组形式显示

import numpy as np
a = np.arange(1,11)
b = np.arange(1,11)
c = np.arange(1,11)
a1 = a.reshape(10,1)
b1 = a.reshape(2,5)
c1 = a.reshape(5,2)
print ("数组10*1:")
print (a1)
print ("数组2*5:")
print (b1)
print ("数组5*2:")
print (c1)
数组10*1:
[[ 1]
 [ 2]
 [ 3]
 [ 4]
 [ 5]
 [ 6]
 [ 7]
 [ 8]
 [ 9]
 [10]]
数组2*5:
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]]
数组5*2:
[[ 1  2]
 [ 3  4]
 [ 5  6]
 [ 7  8]
 [ 9 10]]

创建一个 10x10 的随机数组并找到它的最大值和最小值。

Z = np.random.random((10,10))
Zmin, Zmax = Z.min(), Z.max()
print(Zmin, Zmax)
0.015863588394151695 0.9753507582983225

创建一个2x3的矩阵与一个3x4的矩阵,并求其乘积。

Z = np.dot(np.ones((2,3)), np.ones((3,4)))
print(Z)
[[3. 3. 3. 3.]
 [3. 3. 3. 3.]]

今天下午六点开始数学建模啦

你可能感兴趣的:(numpy,python,机器学习)