คำถามติดแท็ก numpy

NumPy เป็นส่วนขยายการคำนวณทางวิทยาศาสตร์และตัวเลขเป็นภาษาโปรแกรม Python

4
วัตถุหน่วยความจำที่ใช้ร่วมกันในการประมวลผลหลายขั้นตอน
สมมติว่าฉันมีอาร์เรย์จำนวนมากในหน่วยความจำฉันมีฟังก์ชันfuncที่รับอาร์เรย์ยักษ์นี้เป็นอินพุต (พร้อมกับพารามิเตอร์อื่น ๆ ) funcด้วยพารามิเตอร์ที่แตกต่างกันสามารถทำงานแบบขนานได้ ตัวอย่างเช่น: def func(arr, param): # do stuff to arr, param # build array arr pool = Pool(processes = 6) results = [pool.apply_async(func, [arr, param]) for param in all_params] output = [res.get() for res in results] ถ้าฉันใช้ไลบรารีการประมวลผลหลายขั้นตอนอาร์เรย์ขนาดยักษ์นั้นจะถูกคัดลอกหลายครั้งในกระบวนการต่างๆ มีวิธีที่จะให้กระบวนการต่างๆใช้อาร์เรย์เดียวกันได้หรือไม่? วัตถุอาร์เรย์นี้เป็นแบบอ่านอย่างเดียวและจะไม่มีการแก้ไข จะมีอะไรซับซ้อนไปกว่านั้นถ้า arr ไม่ใช่อาร์เรย์ แต่เป็นวัตถุ python โดยพลการมีวิธีแบ่งปันหรือไม่? [แก้ไข] …

6
การประเมินฟังก์ชันอย่างมีประสิทธิภาพในทุกเซลล์ของอาร์เรย์ NumPy
ด้วยอาร์เรย์NumPy A วิธีใดที่เร็ว / มีประสิทธิภาพที่สุดในการใช้ฟังก์ชันเดียวกันfกับทุกเซลล์ สมมติว่าเราจะกำหนดให้A (ฉัน j) f (A (ฉัน j)) ฟังก์ชันfไม่มีเอาต์พุตไบนารีดังนั้นการดำเนินการมาสก์ (ing) จะไม่ช่วย การวนซ้ำสองรอบที่ "ชัดเจน" (ผ่านทุกเซลล์) เป็นทางออกที่ดีที่สุดหรือไม่?

6
วิธีที่ดีที่สุดในการรักษาอาร์เรย์จำนวนนับบนดิสก์
ฉันกำลังมองหาวิธีที่รวดเร็วในการรักษาอาร์เรย์จำนวนมาก ฉันต้องการบันทึกลงในดิสก์ในรูปแบบไบนารีจากนั้นอ่านกลับเข้าไปในหน่วยความจำค่อนข้างเร็ว cPickle ไม่เร็วพอน่าเสียดาย ผมพบว่าnumpy.savezและnumpy.load แต่สิ่งที่แปลกคือ numpy.load โหลดไฟล์ npy ลงใน "memory-map" นั่นหมายความว่าการจัดการอาร์เรย์ปกติจะช้ามาก ตัวอย่างเช่นสิ่งนี้จะช้ามาก: #!/usr/bin/python import numpy as np; import time; from tempfile import TemporaryFile n = 10000000; a = np.arange(n) b = np.arange(n) * 10 c = np.arange(n) * -0.5 file = TemporaryFile() np.savez(file,a = a, b = b, c …


9
Numpy Argsort - มันทำอะไร?
ทำไม numpy จึงให้ผลลัพธ์นี้: x = numpy.array([1.48,1.41,0.0,0.1]) print x.argsort() >[2 3 1 0] เมื่อฉันคาดหวังว่าจะทำสิ่งนี้: [3 2 0 1] เห็นได้ชัดว่าฉันขาดความเข้าใจเกี่ยวกับฟังก์ชันนี้
123 python  numpy 

5
จะสร้างพล็อตความหนาแน่นใน matplotlib ได้อย่างไร?
ใน RI สามารถสร้างผลลัพธ์ที่ต้องการได้โดยทำ: data = c(rep(1.5, 7), rep(2.5, 2), rep(3.5, 8), rep(4.5, 3), rep(5.5, 1), rep(6.5, 8)) plot(density(data, bw=0.5)) ใน python (พร้อม matplotlib) สิ่งที่ใกล้เคียงที่สุดที่ฉันมีคือฮิสโตแกรมง่ายๆ: import matplotlib.pyplot as plt data = [1.5]*7 + [2.5]*2 + [3.5]*8 + [4.5]*3 + [5.5]*1 + [6.5]*8 plt.hist(data, bins=6) plt.show() ฉันลองใช้พารามิเตอร์ normed = True ด้วยแต่ไม่สามารถหาอะไรได้นอกจากพยายามทำให้ gaussian …
122 python  r  numpy  matplotlib  scipy 

9
เพิ่มองค์ประกอบเดียวในอาร์เรย์เป็นตัวเลข
ฉันมีอาร์เรย์จำนวนนับที่ประกอบด้วย: [1, 2, 3] ฉันต้องการสร้างอาร์เรย์ที่มี: [1, 2, 3, 1] นั่นคือฉันต้องการเพิ่มองค์ประกอบแรกที่ส่วนท้ายของอาร์เรย์ ฉันได้ลองสิ่งที่ชัดเจนแล้ว: np.concatenate((a, a[0])) แต่ฉันได้รับข้อผิดพลาดว่า ValueError: arrays must have same number of dimensions ฉันไม่เข้าใจสิ่งนี้ - อาร์เรย์เป็นทั้งอาร์เรย์ 1d
122 python  arrays  numpy 

3
numpy.histogram () ทำงานอย่างไร?
ในขณะที่อ่านบน numpy numpy.histogram()ผมพบฟังก์ชั่น มีไว้ทำอะไรและทำงานอย่างไร? ในเอกสารพวกเขากล่าวถึงถังขยะ : พวกเขาคืออะไร? บาง googling นำฉันไปที่ความหมายของ Histograms ทั่วไป ฉันเข้าใจ. แต่น่าเสียดายที่ฉันไม่สามารถเชื่อมโยงความรู้นี้กับตัวอย่างที่ให้ไว้ในเอกสารได้
121 python  numpy  histogram 

9
เรียงลำดับอาร์เรย์จำนวนมากอย่างมีประสิทธิภาพหรือไม่?
ฉันกำลังประหลาดใจคำถามเฉพาะนี้ยังไม่ได้รับการถามก่อน np.sortแต่ผมไม่คิดว่ามันในดังนั้นไม่เกี่ยวกับเอกสารของ สมมติว่าฉันมีอาร์เรย์แบบสุ่มที่ถือจำนวนเต็มเช่น: > temp = np.random.randint(1,10, 10) > temp array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4]) ถ้าฉันเรียงลำดับฉันจะเรียงลำดับจากน้อยไปมากโดยค่าเริ่มต้น: > np.sort(temp) array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7]) แต่ฉันต้องการแก้ปัญหาที่จะเรียงจากมากไปน้อยการสั่งซื้อ ตอนนี้ฉันรู้ว่าฉันทำได้เสมอ: reverse_order = np.sort(temp)[::-1] แต่คำสั่งสุดท้ายนี้มีประสิทธิภาพหรือไม่? มันไม่ได้สร้างสำเนาจากน้อยไปหามากแล้วย้อนกลับสำเนานี้เพื่อให้ได้ผลลัพธ์ในลำดับที่กลับกันใช่หรือไม่? หากเป็นเช่นนั้นจริงมีทางเลือกอื่นที่มีประสิทธิภาพหรือไม่? ดูเหมือนไม่np.sortยอมรับพารามิเตอร์เพื่อเปลี่ยนเครื่องหมายของการเปรียบเทียบในการดำเนินการเรียงลำดับเพื่อให้ได้สิ่งต่างๆในลำดับย้อนกลับ
121 python  arrays  sorting  numpy 

8
นำเข้าโมดูลโดยอัตโนมัติเมื่อป้อนตัวแปล python หรือ ipython
ฉันพบว่าตัวเองพิมพ์import numpy as npเกือบทุกครั้งที่เปิดเครื่องล่ามงูหลาม ฉันจะตั้งค่าตัวแปล python หรือ ipython เพื่อให้นำเข้าโดยอัตโนมัติได้อย่างไร
120 python  numpy  ipython 

7
ตรวจสอบ NaN ใน NumPy อย่างรวดเร็ว
ฉันกำลังมองหาวิธีที่เร็วที่สุดในการตรวจสอบการเกิดขึ้นของน่าน (คนnp.nan) Xในอาร์เรย์ np.isnan(X)หมดปัญหาเนื่องจากมันสร้างอาร์เรย์ของรูปร่างบูลีนX.shapeซึ่งอาจมีขนาดมหึมา ฉันพยายามแต่ที่ดูเหมือนจะไม่ทำงานเพราะnp.nan in X np.nan != np.nanมีวิธีที่รวดเร็วและประหยัดหน่วยความจำในการดำเนินการนี้หรือไม่? (สำหรับคนที่ถามว่า "ยักษ์ขนาดไหน": ฉันบอกไม่ได้นี่คือการตรวจสอบอินพุตสำหรับรหัสไลบรารี)
120 python  numpy  nan 

5
ตัวเลข: แบ่งแต่ละแถวด้วยองค์ประกอบเวกเตอร์
สมมติว่าฉันมีอาร์เรย์จำนวนนับ: data = np.array([[1,1,1],[2,2,2],[3,3,3]]) และฉันมี "เวกเตอร์:" ที่ตรงกัน vector = np.array([1,2,3]) ฉันจะดำเนินการdataตามแต่ละแถวเพื่อลบหรือหารได้อย่างไรผลลัพธ์จึงเป็น: sub_result = [[0,0,0], [0,0,0], [0,0,0]] div_result = [[1,1,1], [1,1,1], [1,1,1]] เรื่องสั้นสั้น ๆ : ฉันจะดำเนินการกับแต่ละแถวของอาร์เรย์ 2 มิติด้วยสเกลาร์ 1D ที่สอดคล้องกับแต่ละแถวได้อย่างไร
119 python  arrays  numpy  scipy 

8
คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d
ฉันต้องพอดีRandomForestRegressorจากsklearn.ensemble. forest = ensemble.RandomForestRegressor(**RF_tuned_parameters) model = forest.fit(train_fold, train_y) yhat = model.predict(test_fold) รหัสนี้ใช้งานได้ตลอดจนกระทั่งฉันทำการประมวลผลข้อมูลล่วงหน้า ( train_y) ข้อความแสดงข้อผิดพลาดระบุว่า: DataConversionWarning: คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d โปรดเปลี่ยนรูปร่างของ y เป็น (n_samples,) เช่นใช้ ravel () รุ่น = forest.fit (train_fold, train_y) ก่อนหน้าtrain_yนี้เป็นซีรี่ส์ตอนนี้เป็นอาร์เรย์จำนวนนับ (เป็นคอลัมน์เวกเตอร์) ถ้าฉันใช้train_y.ravel()มันจะกลายเป็นเวกเตอร์แถวและไม่มีข้อความแสดงข้อผิดพลาดปรากฏขึ้นผ่านขั้นตอนการคาดคะเนใช้เวลานานมาก (จริง ๆ แล้วมันจะไม่เสร็จสิ้น ... ) ในเอกสารของRandomForestRegressorฉันพบว่าtrain_yควรกำหนดเป็นy : array-like, shape = [n_samples] or [n_samples, n_outputs] ความคิดใด …

6
ความแตกต่างระหว่าง numpy dot () และการคูณเมทริกซ์ Python 3.5+ @
ฉันเพิ่งย้ายไป Python 3.5 และสังเกตเห็นผู้ประกอบการคูณเมทริกซ์ใหม่ (@)บางครั้งทำงานแตกต่างกันจากจุด numpyผู้ประกอบการ ตัวอย่างเช่นสำหรับอาร์เรย์ 3 มิติ: import numpy as np a = np.random.rand(8,13,13) b = np.random.rand(8,13,13) c = a @ b # Python 3.5+ d = np.dot(a, b) ตัว@ดำเนินการส่งคืนอาร์เรย์ของรูปร่าง: c.shape (8, 13, 13) ในขณะที่np.dot()ฟังก์ชันส่งกลับ: d.shape (8, 13, 8, 13) ฉันจะสร้างผลลัพธ์เดียวกันด้วย numpy dot ได้อย่างไร มีความแตกต่างที่สำคัญอื่น ๆ หรือไม่?

4
วิธีรับดัชนีขององค์ประกอบสูงสุดในอาร์เรย์ตัวเลขตามแกนเดียว
ฉันมีอาร์เรย์ NumPy 2 มิติ ฉันรู้วิธีรับค่าสูงสุดบนแกน: >>> a = array([[1,2,3],[4,3,1]]) >>> amax(a,axis=0) array([4, 3, 3]) ฉันจะรับดัชนีขององค์ประกอบสูงสุดได้อย่างไร ดังนั้นฉันต้องการเป็นเอาต์พุตarray([1,1,0])
118 python  numpy  max  indices 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.