numpy学习(二)
练习篇(Part 2)
11. Create a 3x3 identity matrix (★☆☆)
arr = np.eye(3)
print(arr)
运行结果:[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
12. Create a 3x3x3 array with random values (★☆☆)
arr = np.random.random((3,3,3))
print(arr)
运行结果:略
13. Create a 10x10 array with random values and find the minimum and maximum values (★☆☆)
arr = np.random.random((10,10))
print('max:'+str(arr.max()))
print('min:'+str(arr.min()))
运行结果:
max:0.9966220981691146
min:0.0034603079973672957
14. Create a random vector of size 30 and find the mean value (★☆☆)
arr = np.random.random(30)
print(arr.mean())
运行结果:0.49710820465862965
15. Create a 2d array with 1 on the border and 0 inside (★☆☆)
arr = np.ones((10,10))
arr[1:9,1:9] = 0
print(arr)
运行结果:
[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]
16. How to add a border (filled with 0's) around an existing array? (★☆☆)
arr = np.ones((10,10))
arr = np.pad(arr, pad_width=1, mode='constant', constant_values=0)
print(arr)
运行结果:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
17. What is the result of the following expression? (★☆☆)
0 * np.nan
np.nan == np.nan
np.inf > np.nan
np.nan - np.nan
np.nan in set([np.nan])
0.3 == 3 * 0.1
print(0 * np.nan)
print(np.nan == np.nan)
print(np.inf > np.nan)
print(np.nan - np.nan)
print(np.nan in set([np.nan]))
print(0.3 == 3 * 0.1)
运行结果:nan False False nan True False
18. Create a 5x5 matrix with values 1,2,3,4 just below the diagonal (★☆☆)
arr = np.diag(1+np.arange(4),k=-1)
print(arr)
运行结果:
[[0 0 0 0 0]
[1 0 0 0 0]
[0 2 0 0 0]
[0 0 3 0 0]
[0 0 0 4 0]]
19. Create a 8x8 matrix and fill it with a checkerboard pattern (★☆☆)
arr = np.zeros((8,8))
arr[0::2,0::2]=1
arr[1::2,1::2]=1
print(arr)
运行结果:
[[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]]
20. Consider a (6,7,8) shape array, what is the index (x,y,z) of the 100th element?
print(np.unravel_index(99,(6,7,8)))
运行结果:(1, 5, 3)
21. Create a checkerboard 8x8 matrix using the tile function (★☆☆)
arr = np.tile(np.array([[0,1],[1,0]]),(4,4))
print(arr)
运行结果:
[[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]]
22. Normalize a 5x5 random matrix (★☆☆)
arr = np.random.random((5,5))
arr = (arr - np.min(arr))/(np.max(arr) - np.min(arr))
print(arr)
运行结果:
[[0.25182827 1. 0. 0.08239415 0.28511849]
[0.10300901 0.52930264 0.95743154 0.84571053 0.50581171]
[0.82070737 0.5720979 0.91581986 0.16283325 0.27075288]
[0.91480517 0.40637193 0.7032704 0.15695137 0.79951099]
[0.18035443 0.50388197 0.48436665 0.9828424 0.02296698]]
23. Create a custom dtype that describes a color as four unsigned bytes (RGBA) (★☆☆)
color = np.dtype([
("r", np.ubyte, 1),
("g", np.ubyte, 1),
("b", np.ubyte, 1),
("a", np.ubyte, 1)])
print(color)
运行结果:[('r', 'u1'), ('g', 'u1'), ('b', 'u1'), ('a', 'u1')]
24. Multiply a 5x3 matrix by a 3x2 matrix (real matrix product) (★☆☆)
arr1 = np.random.random((5,3))
arr2 = np.random.random((3,2))
arr3 = np.dot(arr1,arr2)
print(arr1)
print(arr2)
print(arr3)
运行结果:
[[0.51143733 0.22531681 0.71917393]
[0.81667839 0.1703277 0.1519645 ]
[0.15206992 0.370845 0.62943418]
[0.33517061 0.6224698 0.46285361]
[0.09370654 0.04592576 0.52768143]]
[[0.0785262 0.25563589]
[0.04088907 0.04818778]
[0.82035168 0.40391289]]
[[0.63934976 0.43208287]
[0.19575952 0.27836044]
[0.54346236 0.3109813 ]
[0.43147462 0.30262961]
[0.44212063 0.23930515]]
25. Given a 1D array, negate all elements which are between 3 and 8, in place. (★☆☆)
arr = np.random.randint(1,10,10)
print(arr)
arr[(arr >=3) & (arr <= 8)] = 0
print(arr)
运行结果:
print(sum(range(5),-1))
from numpy import *
print(sum(range(5),-1))
print(sum(range(5),-1)) #-1表示起始
from numpy import *
print(sum(range(5),-1)) #-1表示轴向
运行结果:9 10
27. Consider an integer vector Z, which of these expressions are legal? (★☆☆)
Z**Z
2 << Z >> 2
Z <- Z
1j*Z
Z/1/1
Z<Z>Z
z = np.random.randint(1,4,(5,5))
print(z)
print(z**z)
print(2<<z>>2)
print(z < -z)
print(1j*z) #1j表示复数的i
print(z/1/1)
print(z<z>z)
运行结果:略(只有最后一个会出错)
28. What are the result of the following expressions?
np.array(0) / np.array(0)
np.array(0) // np.array(0)
np.array([np.nan]).astype(int).astype(float)
运行结果:nan 0 [-2.14748365e+09]
29. How to round away from zero a float array ? (★☆☆)
arr = np.random.random(5)*100
arr1 = np.trunc(arr+0.5)
print(arr)
print(arr1)
运行结果:
[69.37662327 99.0777984 93.6006897 45.79127547 51.93021804]
[69. 99. 94. 46. 52.]
30. How to find common values between two arrays? (★☆☆)
arr1 = np.random.randint(1,5,10)
arr2 = np.random.randint(3,10,10)
print(arr1)
print(arr2)
print(np.intersect1d(arr1,arr2))
运行结果:
[1 2 4 3 4 4 2 4 1 1]
[7 5 4 3 9 9 8 8 8 9]
[3 4]
最新文章
- c++ macro
- DOM加载:浏览器渲染和操作顺序(转载 学习中。。。)
- c#枚举自定义,用于数据绑定。 z
- Ignore files which are already versioned
- I Take It All Back: Using Windows Installer (MSI) Rollback Actions
- wamp——利用phpmyadmin修改数据库密码
- python3.4.3将汉字转换为大写拼音首字母
- 一个关于Linux Bridge配置的吐嘈
- 为什么需要异步?why?来看一段代码。
- nginx keepalived 主从切换
- spring mvc自定义注解--登录时密码加密注解
- C++ 窗口可改风格
- DS控件库 DSLed控件呈现滚动字幕效果
- vue从入门到进阶:vue-router路由功能(九)
- Spring Java-based容器配置
- vmware中centos7设置静态IP
- ExtJs GridPanel 给表格行或者单元格自定义样式
- dsp6657的helloworld例程测试-第二篇-CFG文件
- layer弹出层 获取index
- docker run 的背后的故事(zz)
热门文章
- Android埋点方案的简单实现-AOP之AspectJ
- Invalid `Podfile` file: undefined method `pod&#39; for main:Object.
- hadoop3自学入门笔记(2)—— HDFS分布式搭建
- Codeforces Round447 D树上前缀和
- 解决BitLocker反复提示恢复密钥正确而无法进入系统的问题
- 分布式服务追踪:Spring Cloud Sleuth
- Notes writer Pro
- 极具性价比优势的工业控制以及物联网解决方案-米尔MYD-C8MMX开发板测评
- ConcurrentHashMap的size()方法(1.7和1.8)
- node post 大数据无响应超时