机器学习(numpy)练习四

import numpy as np
arr = np.array(
                [
                    [
                        [3.1,3.14],
                        [3.141,3.1415]
                    ],
                    [
                        [3.14159,3.141592],
                        [3.1415926,3.14159265]   
                    ]
                ]
                )

print(arr[:1,:1])



# np.array() 是 numpy 库中的一个函数,用于创建数组。
# 这里传入的参数是一个嵌套的列表,该列表定义了一个三维数组。这个三维数组可以看作是由两个二维数组组成,每个二维数组又由两个一维数组组成,每个一维数组包含两个浮点数。
# 数组 arr 的形状(shape)为 (2, 2, 2),表示第一维有 2 个元素,第二维有 2 个元素,第三维有 2 个元素。
# arr[:1,:1] 是对数组 arr 进行切片操作。

# 在 NumPy 数组中,切片操作使用冒号 : 来指定范围。arr[:1,:1] 表示取数组 arr 的前 1 个第一维元素中的前 1 个第二维元素。
# 具体来说,第一维的 :1 表示只取第一维的第 0 个元素(索引从 0 开始),第二维的 :1 表示只取该元素中第二维的第 0 个元素。第三维没有指定切片范围,意味着取该元素中第三维的所有元素。
# 最终打印的结果是:
# [[[3.1 3.14]]]
[[[3.1  3.14]]]
import numpy as np
arr=np.array([[[3.1,3.14],[3.141,3.1415]],[[3.14159,3.141592],
[3.1415926,3.14159265]]])
# 在 numpy 数组中,切片操作使用方括号 [] 来指定索引范围。
# arr[:2, :1] 表示对数组进行切片,第一个维度取前 2 个元素(由于数组本身第一个维度就只有 2 个元素,所以这里等价于取整个第一个维度),第二个维度取前 1 个元素。
# = 3.14159265358 表示将切片得到的这些元素统一赋值为 3.14159265358。
arr[:2,:1]=3.14159265358
print(arr)


[[[3.14159265 3.14159265]
  [3.141      3.1415    ]]

 [[3.14159265 3.14159265]
  [3.1415926  3.14159265]]]



# NumPy模块布尔型索引否定条件提取数组中的数据
# 代码中使用了salary[names!="业务员"]语句,用"!="表示names
# 数组中不是“业务员”职位的人员;也使用了salary[~(names=="业务
# 员")]语句,用“~”表示同样的意思。上述代码的运行结果如图2.38
# 所示


import numpy as np
names = np.array(["业务员","业务员","经理","主管","业务员","主管"])
salary=np.array([2520.00,3600.00,2745.00,4200.00,3805.00,3947.00])
print(salary[names!="业务员"])
print("----------------------------")
print(salary[~(names=="业务员")])


[2745. 4200. 3947.]
----------------------------
[2745. 4200. 3947.]


# NumPy模块布尔型索引多条件提取数组中的数据
import numpy as np
names = np.array(["业务员","业务员","经理","主管","业务员","主管"])
salary = np.array([2520.00,3600.00,2745.00,4200.00,3805.00,3947.00])
print(salary[(names=="经理")|(names=="主管")])
print("-------------------")
print(salary[(names=="主管")&(salary>4000)])



[2745. 4200. 3947.]
-------------------
[4200.]



# NumPy模块transpose()方法实现数组转置
# 行列转换,最开始是一行行的数据,现在变成了一列列的数据
import numpy as np
arr=np.array([[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],
[5,5,5,5,5]])
arr_trans=arr.transpose()
print(arr_trans)





[[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]]



# transpose()方法也可以用一个特殊的T属性来代替

import numpy as np
arr=np.array([[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],
[5,5,5,5,5]])
arr_trans=arr.T
print(arr_trans)


[[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
arr = np.random.randn(4,)
print(arr)
result = np.dot(arr.t, arr)
print(result)







import numpy as np 
# 导入 NumPy 库并简写为 np,便于后续调用。
 
arr = np.array( 
    [
        [
            [3.1, 3.14],
            [3.141, 3.1415]
        ],
        [
            [3.14159, 3.141592],
            [3.1415926, 3.14159265]
        ]
    ]
)
# 创建一个三维 NumPy 数组,其结构为两层(第一维)、每层两行(第二维)、每行两列(第三维),数值为逐步精确的圆周率近似值。
 
print(arr[:1, :1])
# 对数组进行切片操作:取第一维的前1个元素(即第一层),再取第二维的前1个元素(即第一行),最终输出该子数组。
代码分析
1. 导入库
Python
复制
import numpy as np 

作用:导入 numpy 库并简写为 np。numpy 是 Python 中用于高效科学计算的核心库12。
关键点:np.random.randn 和 np.dot 均依赖此库。
2. 生成随机数组
Python
复制
arr = np.random.randn(4,) 
np.random.randn :生成符合标准正态分布(均值为 0,标准差为 1)的随机数。
输出形状:参数 (4,) 表示生成一个一维数组,包含 4 个元素。例如:
Python
复制
arr = [-0.123, 1.456, 0.789, -2.345]
3. 计算点积
Python
复制
result = np.dot(arr.T,  arr)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值