聚合运算

一维聚合

python内置函数没有numpy库的函数性能高。

  1. import numpy as np
  2. np.random.seed(666)
  3. L = np.random.random(100)
  4. sum(L) # 49.20482630064383
  5. np.sum(L) # 49.20482630064384
  6. big_array = np.random.rand(1000000)
  7. %timeit sum(big_array)
  8. %timeit np.sum(big_array)
  9. # 432 ms ± 24.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
  10. # 2.6 ms ± 228 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
  11. # min, max
  12. np.min(big_array) # 4.459899819675428e-06
  13. np.max(big_array) # 0.9999999038835905
  14. big_array.min() # 4.459899819675428e-06
  15. big_array.max() # 0.9999999038835905
  16. big_array.sum() # 499765.40298751614

高维聚合

image.png

其他聚合

描述性统计
image.png
image.png

arg运算

image.png
image.png
image.png

Fancy Indexing

image.png
image.png

比较

image.png
image.png

数组转置

array.T 可以得到数组对象的转置后的结果。

  1. print(array002)
  2. print("转置后:\n")
  3. print(array002.T)
  1. [[ 1 2 3 4]
  2. [ 5 6 7 8]
  3. [ 9 10 11 12]]
  4. 转置后:
  5. [[ 1 5 9]
  6. [ 2 6 10]
  7. [ 3 7 11]
  8. [ 4 8 12]]

数组堆叠

首先新进两个数组,之后依此使用vstack进行纵向堆叠和使用hstack进行横向堆叠。

  1. arr1=np.array([1,2,3])
  2. arr2=np.array([4,5,6])
  3. print('纵向堆叠后:\n',np.vstack((arr1,arr2)),
  4. '\n横向堆叠后:\n',np.hstack((arr1,arr2)))
  1. 纵向堆叠后:
  2. [[1 2 3]
  3. [4 5 6]]
  4. 横向堆叠后:
  5. [1 2 3 4 5 6]

类型转换

  1. arr3=np.array([[1,2,3],[4,5,6]])
  2. print("转换前的Ndarray是:\n",arr3)
  3. import pandas as pd
  4. dfFromNdarray=pd.DataFrame(arr3)
  5. print("Ndarray转为DataFrame的结果是:\n",dfFromNdarray)
  1. 转换前的Ndarray是:
  2. [
  3. [1 2 3]
  4. [4 5 6]
  5. ]
  6. Ndarray转为DataFrame的结果是:
  7. 0 1 2
  8. 0 1 2 3
  9. 1 4 5 6
  1. arrFromDataFrame=dfFromNdarray.values
  2. print("DataFrame转为Ndarray的结果是:\n",arrFromDataFrame)
  1. DataFrame转为Ndarray的结果是:
  2. [[1 2 3]
  3. [4 5 6]]