numpy练习(未完)

这篇博客详细介绍了numpy的使用,从导入模块、创建数组到数组操作,包括提取条件元素、替换值、重塑、堆叠、生成序列、计算共同元素、删除元素、索引匹配、范围提取等。此外,还涵盖了函数应用、数组统计、标准化、缺失值处理、条件过滤、排序、概率抽样、欧氏距离、局部峰值和移动平均等进阶操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

numpy 练习

  1. 问题:导入模块numpy并以np作为别名,打印版本号

    import numpy as np
    print(np.__version__)
    
  2. 创建一个含有从0到9数字的一维数组

    import numpy as np
    arr = np.arrange(10)
    
  3. 创建一个3×3的所有值为True的numpy数组

    import numpy as np
    np.full((3,3), True, dtype=bool)
    

或者
python import numpy as np np.ones((3,3), dtype=bool)
4.如何从1维数组中提取满足给定条件的元素?

  • 从arr数组中提取所有奇数元素。
    import numpy as np
    arr = np.arange(10)
    arr[arr % 2 == 1]
    
  1. 在numpy数组中,如何用另一个值替换满足条件的元素?
  • 用-1替换arr数组中所有的奇数。

    import numpy as np
    arr = np.arange(10)
    arr[arr%2==1]=-1
    
  1. 如何替换满足条件的元素而不影响原始数组?
  • 问题:将arr数组中的所有奇数替换为-1而不更改arr数组
    import numpy as np
    arr = np.arange(10)
    out = np.where(arr % 2 == 1, -1, arr)
    
  1. 如何重塑数组?
  • 问题:将1维数组转换为2行的2维数组

    import numpy as np
    np.arange(10).reshape(2,5)
    
  1. 如何垂直堆叠两个数组
  • 垂直堆叠数组a和b
    import numpy as np
    a = np.arange(10).reshape(2,-1)
    b = np.repeat(1,10).reshape(2,-1)
    # 方法1
    np.vstack([a,b])
    # 方法2
    np.r_[a,b]
    # 方法3
    np.concatenate([a,b], axis=0)
    
  1. 如何水平堆叠两个数组?
  • 问题:水平堆叠数组a和b。
    import numpy as np
    a = np.arange(10).reshape(2,-1)
    b = np.repeat(1,10).reshape(2,-1)
    # 方法1
    np.hstack([a,b])
    # 方法2
    np.c_[a,b]
    # 方法3
    np.concatenate([a,b], axis=1)
    
  1. 没有硬编码的情况下,在numpy中如何生成自定义序列?
  • 问题:创建以下模式而不使用硬编码。只能使用numpy函数和输入数组a
    输入: a = np.array([1,2,3])
    
    输出: a = np.array([1,1,1,2,2,2,3,3,3,1,2,3,1,2,3])
    
    import numpy as np
    a = np.array([1,2,3])
    np.r_[np.repeat(a, 
### NumPy 练习题 100道 以下是关于 NumPy 的一些经典练习题目及其解答: #### 打印当前 Numpy 版本 可以通过导入 `numpy` 并访问其内置属性来获取当前安装的 Numpy 库版本[^1]。 ```python import numpy as np print(np.__version__) ``` --- #### 计算一维数组 X 的引导式 95% 置信区间 通过重采样方法计算给定数组的均值分布,并进一步求解置信区间的上下限[^2]。 ```python def bootstrap_confidence_interval(data, num_samples=1000, confidence_level=0.95): sample_mean_list = [] for _ in range(num_samples): resample = np.random.choice(data, size=len(data), replace=True) sample_mean_list.append(resample.mean()) lower_bound = np.percentile(sample_mean_list, ((1 - confidence_level) / 2) * 100) upper_bound = np.percentile(sample_mean_list, (confidence_level + (1 - confidence_level) / 2) * 100) return lower_bound, upper_bound X = np.array([1, 2, 3, 4, 5]) lower, upper = bootstrap_confidence_interval(X) print(f"Lower bound: {lower}, Upper bound: {upper}") ``` --- #### 寻找数组的第 n 大值 可以利用 `argsort` 或者更高效的 `argpartition` 方法快速定位目标位置上的数值[^3]。 ```python Z = np.arange(10000) np.random.shuffle(Z) n = 5 # 使用 argsort(较慢) result_slow = Z[np.argsort(Z)[-n:]] # 使用 argpartition(较快) result_fast = Z[np.argpartition(-Z, n)[:n]] print("Top", n, "values using slow method:", result_slow[::-1]) print("Top", n, "values using fast method:", -np.sort(-result_fast)) ``` --- #### 查找数组中的唯一值数量 统计输入数据集中不同元素的数量,可通过调用 `unique` 函数实现[^4]。 ```python arr = np.array([1, 2, 3, 2, 3, 4, 3, 4, 5, 6]) unique_values_count = len(np.unique(arr)) print(unique_values_count) ``` --- #### 更多 NumPy 练习题推荐 除了上述提到的内容外,《NumPy 练习题 100 道》还涵盖了诸如矩阵运算、随机数生成以及文件读写等多个方面。具体可参考官方文档或其他权威资料深入学习更多高级技巧。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值