持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
今天是十月更文计划第二天,第二篇
今天继续昨天的numpy学习
kp1:numpy数组中进行元素间的比较:使用isclose ,allclose方法,allclose表示每个对应元素之间进行比较,isclose表示逐个元素之间进行比较。
x = np.array([1, 2, 3, 4.001, 5])
y = np.array([1, 1.999, 3, 4.01, 5.1])
print(np.allclose(x, y))
print(np.allclose(x, y, rtol=0.2)) # 设置相对误差参数rtol
print(np.allclose(x, y, atol=0.2)) # 设置绝对误差参数atol
print(np.isclose(x, y)) #逐个元素进行比较
print(np.isclose(x, y, atol=0.2))
输出的结果如下:
kp2:对numpy中的数据进行修改
append增加元素,insert在指定位置增加元素,这种方法都会返回新的数组。如果在原数组中进行修改的话,只需要按照数组下标进行修改即可
x = np.arange(8)
print(x)
x1 = np.append(x, 8) #用append函数,返回新数组,在尾部追加一个元素
print(x1)
x2 = np.append(x, [9,10]) # 返回新数组,在尾部追加多个元素
print(x2)
print(x) # 不影响原来的数组
x[3] = 8 # 使用下标的形式原地修改元素值
print(x) # 原来的数组被修改了
x3 = np.insert(x, 1, 8) # 返回新数组,插入元素
print(x3)
输出的结果如下:
kp3:对二维及多维以上数组进行修改:
对于多维数组进行修改,需要掌握切片的方法,
x = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(x)
x[1:, 1:] = 1
表示将行标大于等于1,列标同样大于等于1的数字全部赋值为1,输出的结果如下:
x = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(x)
x[1:, 1:] = [1,2]
print(x)
把行下标大于等于1,且列下标也大于等于1的元素值都设置为[1,2],如果维度不相同或者填充s数字不符合时就会报错:
也可以同时修改多个数字的值:
x = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(x)
x[1:, 1:] = [[1,2],[3,4]]
print(x)
输出的结果如下:
kp4:数组与标量的运算: numpy中数组与标量的运算就是将数组中的每一个数字与标量进行运算,加减乘除等。
x = np.array((1, 2, 3, 4, 5)) # 创建数组对象
print(x)
x1= x * 2 # 数组与数值相乘,返回新数组,元素是原数组与标量2相乘的结果
print(x1)
x2 = x / 2 # 数组与数值相除
print(x2)
x3 = x // 2 # 数组与数值整除
print(x3)
x4 = x ** 3 # 幂运算
print(x4)
x5 = x + 2 # 数组与数值相加
print(x5)
x6 = x % 3 # 余数
print(x6)
x7 = 2 ** x # 分别计算2**1、2**2、2**3、2**4、2**5
print(x7)
x8 = 2 / x
print(x8)
x9 = 63 // x
print(x9)
输出的结果如下: