• 创建一个 5x5 的二维数组,其中边界值为1,其余值为0;
    • np.ones()
    • 切片和索引的赋值
import numpy as np
data = np.ones((5,5),dtype=float)
print(data)
data[:4,:4]=0
data[:1] = 1
# data.T[:1] = 1
data[:,0] =1
print(data)

numpy练习
2. 使用数字 0 将一个全为 1 的 5x5 二维数组包围, 效果如下:
array([[0., 0., 0., 0., 0., 0., 0.],
[0., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 0.],
[0., 0., 0., 0., 0., 0., 0.]])

import numpy as np
data = np.ones((5,5),dtype=float)
t1 = np.zeros((1,5),dtype=float)
t2 = np.zeros((7,1),dtype=float)
data1 = np.vstack((t1,data,t1))
data2 = np.hstack((t2,data1,t2))
print(data2)

numpy练习
3. 创建一个 10x10 的二维数组,并使得 1 和 0 沿对角线间隔放置, 效果如下:
array([[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]])

import numpy as np

data = np.zeros((10,10),dtype=int)
data[1::2,::2] = 1 ##每两个
data[::2,1::2] = 1
print(data)

numpy练习

  1. 创建一个 0-10 的一维数组,并将 (1, 9] 之间的数全部反转成负数, 效果如下:
    array([ 0, 1, -2, -3, -4, -5, -6, -7, -8, -9, 10])
import numpy as np
data = np.array(range(11))
print(data)
data[2:10] = -data[2:10]
print(data)

numpy练习
4. 创建一个 5x5 的矩阵,其中每行的数值范围从 1 到 5, 效果如下:
array([[1., 2., 3., 4., 5.],
[1., 2., 3., 4., 5.],
[1., 2., 3., 4., 5.],
[1., 2., 3., 4., 5.],
[1., 2., 3., 4., 5.]])

import numpy as np
data = np.zeros((5,5))
data += np.arange(1,6)
print(data)

numpy练习
5. 创建一个长度为 5 的一维数组,并将其中最大值替换成 0

import numpy as np
data = np.arange(1,6)
print(data)
print(np.argmax(data))#获取最大值索引
data[np.argmax(data)]=0
print(data)

numpy练习
7. 将二维数组的前两行进行顺序交换, 效果如下:

  • 交换前
    [[ 0 1 2 3 4]
    [ 5 6 7 8 9]
    [10 11 12 13 14]
    [15 16 17 18 19]
    [20 21 22 23 24]]

  • 交换后
    [[ 5 6 7 8 9]
    [ 0 1 2 3 4]
    [10 11 12 13 14]
    [15 16 17 18 19]
    [20 21 22 23 24]]

import numpy as np
data = np.arange(25).reshape(5,5)
print(data)
data[[0,1],:] = data[[1,0],:]
print(data)

numpy练习

  1. 找出给定一维数组中非 0 元素的位置索引
import numpy as np
data = np.nonzero([1,3,5,3,0,4,3,0,1,4])
print(data)

numpy练习

9.找出数组中缺失值的总数及所在位置, 案例如下:
array([[0.8 , 0.25, 0.74, 0.05, 0.24, 0.16, 0.63, 0.62, 0.89, 0.85],
[0.61, 0.76, 0.26, 0.3 , 0.82, 0.74, 0.96, 0.64, 0.58, 0.06],
[0.78, 0.38, 0.19, 0.68, 0.75, 0.91, 0.13, 0.24, 0.98, 0.21],
[0.47, 0.12, 0.34, 0.06, 0.46, 0.69, 0.1 , nan, 0.27, 0.92],
[0.83, 0.01, 0.63, 0.15, 0.52, 0.52, 0.02, 0. , 0.74, 0.59],
[0.56, 0.66, 0.15, nan, 0.26, 0.88, 0.15, 0.57, 0.61, 0.35],
[0.33, 0.58, 0.06, 0.94, 0.58, 0.53, 0.97, 0.02, 0.32, nan],
[0.84, 0.71, 0.65, 0.42, 0.44, 0.96, 0.37, 0.65, 0.6 , 0.17],
[0.04, 0.94, 0.92, nan, 0.7 , 0.38, 0.28, 0.45, 0.35, 0.93],
[0.38, 0.69, 0.43, 0.01, 0.67, 0.46, 0.73, 0.99, 0.94, 0.45]])
缺失值总数:
4
缺失值索引:
(array([3, 5, 6, 8]), array([7, 3, 9, 3]))

import numpy as np

data = np.array([[0.8 , 0.25, 0.74, 0.05, 0.24, 0.16, 0.63, 0.62, 0.89, 0.85],
       [0.61, 0.76, 0.26, 0.3 , 0.82, 0.74, 0.96, 0.64, 0.58, 0.06],
       [0.78, 0.38, 0.19, 0.68, 0.75, 0.91, 0.13, 0.24, 0.98, 0.21],
       [0.47, 0.12, 0.34, 0.06, 0.46, 0.69, 0.1 ,  1, 0.27, 0.92],
       [0.83, 0.01, 0.63, 0.15, 0.52, 0.52, 0.02, 0.  , 0.74, 0.59],
       [0.56, 0.66, 0.15,  1, 0.26, 0.88, 0.15, 0.57, 0.61, 0.35],
       [0.33, 0.58, 0.06, 0.94, 0.58, 0.53, 0.97, 0.02, 0.32,  1],
       [0.84, 0.71, 0.65, 0.42, 0.44, 0.96, 0.37, 0.65, 0.6 , 0.17],
       [0.04, 0.94, 0.92,  1, 0.7 , 0.38, 0.28, 0.45, 0.35, 0.93],
       [0.38, 0.69, 0.43, 0.01, 0.67, 0.46, 0.73, 0.99, 0.94, 0.45]])
print(data)
data[3,7] = np.nan
data[5,3] = np.nan
data[9,6] = np.nan
data[8,3] = np.nan
print(data)
print(np.count_nonzero(data!=data))
print(np.where(np.isnan(data)))

numpy练习
numpy练习

相关文章: