numpy 练习 1-10
Numpy数据分析问答
1、导入numpy作为np,并查看版本
import numpy as np
print(np.__version__)
# > '1.15.4'
2、如何创建一维数组
arr = np.arange(10)
3、创建一个布尔数组
np.full((3,3),True, dtype=bool)
#或者
np.ones((3,3), dtype=bool)
4、如何从一维数组中提取满足制定条件的元素?
#input
arr = np.arange(10)
#solution
arr[arr %2 == 1]
#output
> array([1, 3, 5, 7, 9])
5、如何从一维数组中提取满足制定条件的元素?
问题:将arr中的所有奇数替换为-1
#input
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#solution
arr[arr %2 == 1] = -1
#output
> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])
6、如何在不影响原始数组的情况下替换满足条件的元素项?
问题:将arr中的所有奇数替换为-1,而不改变arr。
#input
arr = np.arange(10)
#solution
out = np.where(arr % 2 == 1, -1, arr)
#output
arr
> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
out
> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])
7、如何改变数组的形状
问题:将一维数组转换为2行的2维数组
arr = np.arange(10)
#solution
arr.reshape(2,-1)#-1 自动算第二维的元素个数
# > array([[0, 1, 2, 3, 4],
# > [5, 6, 7, 8, 9]])
8、如何垂直叠加两个数组
问题: 垂直叠加数组a和数组b
a = np.arange(10).reshape(2,-1)
b = np.repeat(1,10).reshape(2,-1)
#method1
np.concatenate([a,b], axis = 0)
#method2
np.vstack([a,b])
#method3
np.r_[a,b]
#output
# > array([[0, 1, 2, 3, 4],
# > [5, 6, 7, 8, 9],
# > [1, 1, 1, 1, 1],
# > [1, 1, 1, 1, 1]])
9、如何水平叠加两个数组
问题: 将数组a和数组b水平堆叠
a = np.arange(10).reshape(2,-1)
b = np.repeat(1,10).reshape(2,-1)
#method1
np.contactenate([a,b],axis=1)
#method2
np.hstack([a,b])
#method3
np.r_[a,b]
#output
# > array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],
# > [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])
10、如何在无硬编码的情况下生成numpy中的自定义序列
问题: 创建以下模式,而不使用硬编码。只是用numpy函数和下面的输入数组a.
#input
a = np.array([1,2,3])
#aspect output
# > array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])
#solution
np.r_[np.repeat(a, 3), np.tile(a, 3)]
#output
# > array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])