Numpy基本的属性操作

对于ndarray结构来说,里面所有元素必须是同一类型的,如果不是的话,会自动的向下进行转换。

  1. import numpy as np
  2. tang_list = [1,2,3,4,5]
  3. new_list = np.array(tang_list)
  4. new_list.size #查看元素大小
  5. new_list.itemsize #查看元素占了多少字节
  6. new_list.shap #查看元素结构
  7. new_list.ndim #查看是几维的数组
  8. #写法二
  9. np.size(new_list)
  10. np.ndim(new_list)
  11. np.itemsize(new_list)
  12. np.shap(new_list)

numpy列表填充相同值的方法

方法零:fill( )

  1. tang_list=[1,2,3,4,5]
  2. tang_array=np.array(tang_list)
  3. tang_array.fill(9)
  4. print(tang_array)

运行结果:
[9 9 9 9 9]

方法一:empty( ) fill( )

  1. array = np.empty(10)
  2. array.fill(7)
  3. print(array)

运行结果:
[7. 7. 7. 7. 7. 7. 7. 7. 7. 7.]

方法二:full( )

  1. b = np.full((3, 5), 7)
  2. print(b)

运行结果:
[[7 7 7 7 7]
[7 7 7 7 7]
[7 7 7 7 7]]

切片索引

跟Python一样的,还是从0开始,[1:3]包前不包后。

  1. tang_list=[1,2,3,4,5]
  2. tang_array=np.array(tang_list)
  3. print(tang_array)
  4. c= tang_array[1:3]
  5. d= tang_array[5:6]
  6. print(c)
  7. print(d)
  8. f = tang_array[-2:]
  9. print(f)
  10. f = tang_array[-2]
  11. print("f:%d" %f)

输出结果:
[1 2 3 4 5]
[2 3]
[]
[4 5]
f:4

矩阵格式(多维的形式)

  1. juz_array = np.array([[1,2,3],[4,5,6],[7,8,9]])
  2. print(juz_array)
  3. juz_array[1,1]=10 #重新赋值
  4. print(juz_array)
  5. print(juz_array[1]) #取行
  6. print(juz_array[:,1]) #取列
  7. print(juz_array[0,0:2]) #取特定的

输出结果:
[[1 2 3]
[4 5 6]
[7 8 9]]

[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]

[ 4 10 6]

[ 2 10 8]

[1 2]

copy()方法与赋值的区别

  1. print("--------------")
  2. print(juz_array)
  3. juz_array2 = juz_array
  4. juz_array3= juz_array.copy()
  5. juz_array2 [1,1]=100
  6. juz_array3[1,1] = 10000
  7. print( juz_array3)
  8. print(juz_array2)
  9. print(juz_array)

输出结果:
juzarray
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
juzarray3
[[ 1 2 3]
[ 4 10000 6]
[ 7 8 9]]
juzarray2
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]
juzarray
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]

等差数组

  1. tang_array = np.arange(0,100,10)
  2. print(tang_array)

输出结果:[ 0 10 20 30 40 50 60 70 80 90]

  1. mask = np.array([0,0,0,1,2,3,4],dtype=bool)
  2. print(mask)

输出结果:[False False False True True True True]

布尔值作为索引(tang_array[mask])

  1. print(tang_array[mask])
  2. random_array = np.random.rand(10)
  3. print(random_array)
  4. mask = random_array>0.5
  5. print(mask)

输出结果:
[30 40 50 60 80 90]
[0.63877771 0.65876558 0.64282817 0.12465561 0.06974439 0.43233329
0.26238864 0.81754049 0.93398163 0.12972045]
[ True True True False False False False True True False]

where

  1. tang_array = np.array([10,20,30,40,50])
  2. print(tang_array>30)
  3. print(np.where(tang_array>30) ) #返回的索引
  4. #利用索引找到值
  5. print(tang_array[np.where(tang_array>30)])

输出结果:
[False False False True True]
(array([3, 4], dtype=int64),)
[40 50]