聚合运算
一维聚合
python内置函数没有numpy库的函数性能高。
import numpy as np
np.random.seed(666)
L = np.random.random(100)
sum(L) # 49.20482630064383
np.sum(L) # 49.20482630064384
big_array = np.random.rand(1000000)
%timeit sum(big_array)
%timeit np.sum(big_array)
# 432 ms ± 24.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# 2.6 ms ± 228 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
# min, max
np.min(big_array) # 4.459899819675428e-06
np.max(big_array) # 0.9999999038835905
big_array.min() # 4.459899819675428e-06
big_array.max() # 0.9999999038835905
big_array.sum() # 499765.40298751614
高维聚合
其他聚合
arg运算
Fancy Indexing
比较
数组转置
array.T
可以得到数组对象的转置后的结果。
print(array002)
print("转置后:\n")
print(array002.T)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
转置后:
[[ 1 5 9]
[ 2 6 10]
[ 3 7 11]
[ 4 8 12]]
数组堆叠
首先新进两个数组,之后依此使用vstack进行纵向堆叠和使用hstack进行横向堆叠。
arr1=np.array([1,2,3])
arr2=np.array([4,5,6])
print('纵向堆叠后:\n',np.vstack((arr1,arr2)),
'\n横向堆叠后:\n',np.hstack((arr1,arr2)))
纵向堆叠后:
[[1 2 3]
[4 5 6]]
横向堆叠后:
[1 2 3 4 5 6]
类型转换
arr3=np.array([[1,2,3],[4,5,6]])
print("转换前的Ndarray是:\n",arr3)
import pandas as pd
dfFromNdarray=pd.DataFrame(arr3)
print("Ndarray转为DataFrame的结果是:\n",dfFromNdarray)
转换前的Ndarray是:
[
[1 2 3]
[4 5 6]
]
Ndarray转为DataFrame的结果是:
0 1 2
0 1 2 3
1 4 5 6
arrFromDataFrame=dfFromNdarray.values
print("DataFrame转为Ndarray的结果是:\n",arrFromDataFrame)
DataFrame转为Ndarray的结果是:
[[1 2 3]
[4 5 6]]