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
    numpy的数组多维度转化及其创建_第1张图片

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

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

    在这里插入图片描述

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

numpy的数组多维度转化及其创建_第2张图片
numpy的数组多维度转化及其创建_第3张图片

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

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

  • 把a8一维数组改成2行三列的二维数组
    a = a8.reshape((2.3))
  • 把a8一维数组改成三维数组
    a = a8.reshape((1,1,6))
    numpy的数组多维度转化及其创建_第4张图片

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
    numpy的数组多维度转化及其创建_第5张图片

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

  • a14 = a.flatten()
    a14

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

  • a15 = a.ravel() # 数组转换为一维 会影响原数组
    a15
    numpy的数组多维度转化及其创建_第6张图片

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])
    numpy的数组多维度转化及其创建_第7张图片

  • 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]])

你可能感兴趣的:(数据分析,python)