numpy的数组多维度转化及其创建

1.numpy数组里面只有一种数据类型,如果既有整型又有字符串,那么都会变成字符串,如果既有整型又有浮点型,都会变成浮点型

1.numpy运行速度之所以快是由c语言编写的,数据类型需要我们命名所以运算速度快

  • 1.浮点型创建数组

  • import numpy as np
    a = np.array([1,2,3,1.5])
    a
    在这里插入图片描述

  • 2.整型创建数组

  • a = np.array([1,2,3])
    a
    在这里插入图片描述

  • 3.字符串创建数组

  • a = np.array(‘123’)
    a
    在这里插入图片描述

  • 4.从头创建数组

  • a = list(range(10))
    a4 = np.array(a)
    a4
    在这里插入图片描述

  • 5.生成范围数组对象,和range函数一样都可以选择步长

  • a = np.arange(0,10)
    a

    在这里插入图片描述

2.np.zeros?可以查询这个方法

在这里插入图片描述
在这里插入图片描述

2.多维数组(有多少个[]就是多少维数组)

1.修改数组维度 ,一维到多维

  • 把a8一维数组改成2行三列的二维数组
    a = a8.reshape((2.3))
  • 把a8一维数组改成三维数组
    a = a8.reshape((1,1,6))
    在这里插入图片描述

2.修改数组维度,多维到一维

  • 二维转一维

  • a8 = np.arange(12)
    a2 = a8.reshape((2,6))
    a1 = a2.reshape((12,))
    a1

  • 三维转一维

  • a= a8.reshape((2,2,3))
    a1 = a.reshape((12,))
    a1
    在这里插入图片描述

  • 不管多少维度统一转化为一维(不影响原数组)

  • a14 = a.flatten()
    a14

  • 不管多少维度统一转化为一维(影响原数组)

  • a15 = a.ravel() # 数组转换为一维 会影响原数组
    a15
    在这里插入图片描述

3.数组属性

  • n2
    array([[1, 2, 3],
    [4, 5, 6]])
1.ndim 秩
  • n2.ndim
    2
2.形状
  • 二维数组
  • n2
    array([[1, 2, 3],
    [4, 5, 6]])
  • n2.shape
    (2,3) 二维数组 2行 3列
  • 三维数组
  • n3
    array([[[ 1, 2, 3],
    [ 4, 5, 6]],
    [[ 7, 8, 9],
    [10, 11, 12]]])
  • n3.shape
  • (2, 2, 3) 三维数组 总共两个元素 ,每个元素都是2行3列
  • 数组中元素个数
  • n2.size
    6
  • 数组中最大值的索引位置
a = np.arange(5)
  • np.argmax(a,axis=0) ------------ 返回索引 4

4.切片

  • 注:索引值为1是第二行 ,切片左闭右开,左边算右边不算
  • 冒号之前是行的切片,冒号之后是列的切片
  • a[ :1 , :2]
  • 这是个第一行,前俩列的切片
  • a[1: , :2]
  • 除过第一行,后几行的,前俩列的切片
  • a[1:3 , 1:2]
  • 第二行到第三行,第一列的切片

布尔索引

  • a3 = np.arange(40).reshape((5,8)) 生成五行八列的二维数组
    a3

  • array([[ 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, 25, 26, 27, 28, 29, 30, 31],
    [32, 33, 34, 35, 36, 37, 38, 39]])

  • a3<20 小于20的都变成True
    array([[ True, True, True, True, True, True, True, True],
    [ True, True, True, True, True, True, True, True],
    [ True, True, True, True, False, False, False, False],
    [False, False, False, False, False, False, False, False],
    [False, False, False, False, False, False, False, False]]

  • a3[a3<20] 生成所有大于20的一维数组
    array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
    17, 18, 19])

  • a3[(a3 > 10) & (a3 < 20)] 大于10而且小于20的一维数组
    array([11, 12, 13, 14, 15, 16, 17, 18, 19])

  • a3[(a3 > 10) | (a3 < 5)] 大于10或者小于5的一维数组
    array([ 0, 1, 2, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
    23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39])
    在这里插入图片描述

  • a3[0][0] = 100 替换第一行第一个数字为100
    a3
    array([[100, 1, 2, 3, 4, 5, 6, 7],
    [ 8, 9, 10, 11, 12, 13, 14, 15],
    [ 16, 17, 18, 19, 20, 21, 22, 23],
    [ 24, 25, 26, 27, 28, 29, 30, 31],
    [ 32, 33, 34, 35, 36, 37, 38, 39]])

  • a3[0] = 10 替换第一行都是10
    a3
    array([[10, 10, 10, 10, 10, 10, 10, 10],
    [ 8, 9, 10, 11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20, 21, 22, 23],
    [24, 25, 26, 27, 28, 29, 30, 31],
    [32, 33, 34, 35, 36, 37, 38, 39]])

  • a3[0] = [1,2,4,5,6,7,8,55] 替换第一行
    a3
    array([[ 1, 2, 4, 5, 6, 7, 8, 55],
    [ 8, 9, 10, 11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20, 21, 22, 23],
    [24, 25, 26, 27, 28, 29, 30, 31],
    [32, 33, 34, 35, 36, 37, 38, 39]])

  • a3[a3>30] = 20 替换大于30的都变成20
    a3
    array([[ 1, 2, 4, 5, 6, 7, 8, 20],
    [ 8, 9, 10, 11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20, 21, 22, 23],
    [24, 25, 26, 27, 28, 29, 30, 20],
    [20, 20, 20, 20, 20, 20, 20, 20]])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最低调的奢华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值